Remilia's SlackBuild packages for Slackware Linux
Revision | 7d53fa5ad9b3bdd0a6ab72a12863436529b5bd37 (tree) |
---|---|
Time | 2023-06-12 13:59:20 |
Author | Remilia Scarlet <remilia@post...> |
Commiter | Remilia Scarlet |
Add Shards
@@ -0,0 +1,3 @@ | ||
1 | +Shards is a build tool and dependency manager for the Crystal programming | |
2 | +language. It supports dependencies in Git, Mercurial, and Fossil repositories, | |
3 | +and can produce reproducible installs across computers and systems. | |
\ No newline at end of file |
@@ -0,0 +1,133 @@ | ||
1 | +#!/bin/bash | |
2 | + | |
3 | +# Slackware build script for Shards | |
4 | +# | |
5 | +# Copyright 2023 Remilia Scarlet, Colorado, United States | |
6 | +# All rights reserved. | |
7 | +# | |
8 | +# Redistribution and use of this script, with or without modification, is | |
9 | +# permitted provided that the following conditions are met: | |
10 | +# | |
11 | +# 1. Redistributions of this script must retain the above copyright | |
12 | +# notice, this list of conditions and the following disclaimer. | |
13 | +# | |
14 | +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED | |
15 | +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
16 | +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | |
17 | +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
18 | +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
19 | +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
20 | +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
21 | +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
22 | +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
23 | +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
24 | +cd $(dirname $0) ; CWD=$(pwd) | |
25 | + | |
26 | +PRGNAM=shards | |
27 | +VERSION=${VERSION:-0.17.3} | |
28 | +MOLINILLO_VERSION=${MOLINILLO_VERSION:-0.2.0} | |
29 | +BUILD=${BUILD:-1} | |
30 | +TAG=${TAG:-_SBo} | |
31 | +PKGTYPE=${PKGTYPE:-tgz} | |
32 | + | |
33 | +# Automatically determine the architecture we're building on: | |
34 | +if [ -z "$ARCH" ]; then | |
35 | + case "$( uname -m )" in | |
36 | + i?86) ARCH=i586 ;; | |
37 | + arm*) ARCH=arm ;; | |
38 | + # Unless $ARCH is already set, use uname -m for all other archs: | |
39 | + *) ARCH=$( uname -m ) ;; | |
40 | + esac | |
41 | +fi | |
42 | + | |
43 | +if [ "$ARCH" = "i586" ]; then | |
44 | + SLKCFLAGS="-O2 -march=i586 -mtune=i686" | |
45 | + CRYSTAL_SLK_FLAGS="--mcpu=x86" | |
46 | + LIBDIRSUFFIX="" | |
47 | +elif [ "$ARCH" = "i686" ]; then | |
48 | + SLKCFLAGS="-O2 -march=i686 -mtune=i686" | |
49 | + CRYSTAL_SLK_FLAGS="--mcpu=x86" | |
50 | + LIBDIRSUFFIX="" | |
51 | +elif [ "$ARCH" = "x86_64" ]; then | |
52 | + SLKCFLAGS="-O2 -fPIC" | |
53 | + CRYSTAL_SLK_FLAGS="--mcpu=x86_64" | |
54 | + LIBDIRSUFFIX="64" | |
55 | +elif [ "$ARCH" = "aarch64" ]; then | |
56 | + SLKCFLAGS="-O2 -fPIC" | |
57 | + CRYSTAL_SLK_FLAGS="--mcpu=aarch64" | |
58 | + LIBDIRSUFFIX="64" | |
59 | +else | |
60 | + SLKCFLAGS="-O2" | |
61 | + CRYSTAL_SLK_FLAGS="" | |
62 | + LIBDIRSUFFIX="" | |
63 | +fi | |
64 | + | |
65 | +# If the variable PRINT_PACKAGE_NAME is set, then this script will report what | |
66 | +# the name of the created package would be, and then exit. This information | |
67 | +# could be useful to other scripts. | |
68 | +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then | |
69 | + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" | |
70 | + exit 0 | |
71 | +fi | |
72 | + | |
73 | +TMP=${TMP:-/tmp/SBo} | |
74 | +PKG=$TMP/package-$PRGNAM | |
75 | +OUTPUT=${OUTPUT:-/tmp} | |
76 | + | |
77 | +set -e # Exit on most errors | |
78 | + | |
79 | +rm -rf $PKG | |
80 | +mkdir -p $TMP $PKG $OUTPUT | |
81 | +cd $TMP | |
82 | +rm -rf $PRGNAM-$VERSION | |
83 | +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz | |
84 | +cd $PRGNAM-$VERSION | |
85 | + | |
86 | +# Copy over the needed molinillo dependency and unpack it into the lib directory | |
87 | +mkdir lib | |
88 | +cp -v $CWD/crystal-molinillo-$MOLINILLO_VERSION.tar.gz lib/ | |
89 | +( | |
90 | + cd lib | |
91 | + tar xvzf crystal-molinillo-$MOLINILLO_VERSION.tar.gz | |
92 | + mv crystal-molinillo-$MOLINILLO_VERSION molinillo | |
93 | +) | |
94 | + | |
95 | +chown -R root:root . | |
96 | +find -L . \ | |
97 | + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ | |
98 | + -o -perm 511 \) -exec chmod 755 {} \; -o \ | |
99 | + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ | |
100 | + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; | |
101 | + | |
102 | +# Build the compiler | |
103 | +CFLAGS="$SLKCFLAGS" \ | |
104 | +CRYSTAL_OPTS="$CRYSTAL_SLK_FLAGS" | |
105 | + make release=1 progress=1 | |
106 | +make install PREFIX=/usr DESTDIR=$PKG | |
107 | + | |
108 | +# Strip binaries and libraries - this can be done with 'make install-strip' | |
109 | +# in many source trees, and that's usually acceptable if so, but if not, | |
110 | +# use this: | |
111 | +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | |
112 | + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true | |
113 | + | |
114 | +# Copy program documentation into the package | |
115 | +# The included documentation varies from one application to another, so be sure | |
116 | +# to adjust your script as needed | |
117 | +# Also, include the SlackBuild script in the documentation directory | |
118 | +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION | |
119 | +cp -a README.md $PKG/usr/doc/$PRGNAM-$VERSION | |
120 | +cp -a CHANGELOG.md $PKG/usr/doc/$PRGNAM-$VERSION | |
121 | +cp -a SPEC.md $PKG/usr/doc/$PRGNAM-$VERSION | |
122 | +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild | |
123 | + | |
124 | +# Copy the slack-desc into ./install | |
125 | +mkdir -p $PKG/install | |
126 | +cat $CWD/slack-desc > $PKG/install/slack-desc | |
127 | + | |
128 | +# Make the package; be sure to leave it in $OUTPUT | |
129 | +# If package symlinks need to be created during install *before* | |
130 | +# your custom contents of doinst.sh runs, then add the -p switch to | |
131 | +# the makepkg command below -- see makepkg(8) for details | |
132 | +cd $PKG | |
133 | +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE |
@@ -0,0 +1,14 @@ | ||
1 | +PRGNAM="shards" | |
2 | +VERSION="0.17.3" | |
3 | +HOMEPAGE="https://github.com/crystal-lang/shards" | |
4 | +DOWNLOAD="https://github.com/crystal-lang/shards/archive/refs/tags/v0.17.3.tar.gz \ | |
5 | + https://github.com/crystal-lang/crystal-molinillo/archive/refs/tags/v0.2.0.tar.gz" | |
6 | +MD5SUM="1fc2b19765e28a6bbf16291caf9cf62c | |
7 | + 11fd34fe3bbc91b851a74af6349b393f" | |
8 | +DOWNLOAD_x86_64="" | |
9 | +MD5SUM_x86_64="" | |
10 | +DOWNLOAD_aarch64="" | |
11 | +MD5SUM_aarch64="" | |
12 | +REQUIRES="crystal-lang" | |
13 | +MAINTAINER="Remilia Scarlet" | |
14 | +EMAIL="remilia@sdf.org" |
@@ -0,0 +1,19 @@ | ||
1 | +# HOW TO EDIT THIS FILE: | |
2 | +# The "handy ruler" below makes it easier to edit a package description. | |
3 | +# Line up the first '|' above the ':' following the base package name, and | |
4 | +# the '|' on the right side marks the last column you can put a character in. | |
5 | +# You must make exactly 11 lines for the formatting to be correct. It's also | |
6 | +# customary to leave one space after the ':' except on otherwise blank lines. | |
7 | + | |
8 | + |-----handy-ruler------------------------------------------------------| | |
9 | +shards: shards (a build tool for the Crystal programming language) | |
10 | +shards: | |
11 | +shards: Shards is a build tool and dependency manager for the Crystal | |
12 | +shards: programming language. It supports dependencies in Git, Mercurial, | |
13 | +shards: and Fossil repositories. | |
14 | +shards: | |
15 | +shards: | |
16 | +shards: | |
17 | +shards: | |
18 | +shards: Homepage: https://github.com/crystal-lang/shards/ | |
19 | +shards: | |
\ No newline at end of file |