Browse Source

Probably the biggest update yet

master
mid-kid 8 years ago
parent
commit
6ed5daf651
  1. 6
      astronaut/astronaut
  2. 29
      astronaut/astronautpkg
  3. 2
      graveyard/unmaintained_satellites/3dstool.sat
  4. 13
      graveyard/unmaintained_satellites/bcunit-git.sat
  5. 23
      graveyard/unmaintained_satellites/kbuild.sat
  6. 2
      graveyard/unmaintained_satellites/scrot.sat
  7. 15
      satellites/bctoolbox.sat
  8. 13
      satellites/bluez-alsa-git.sat
  9. 12
      satellites/ctrtool-git.sat
  10. 213
      satellites/extrafiles/i3/iconsupport.patch
  11. 14
      satellites/fdk-aac.sat
  12. 4
      satellites/ffmpeg.sat
  13. 2
      satellites/functions/compile/cmake.sh
  14. 12
      satellites/functions/compile/configure.sh
  15. 2
      satellites/functions/compile/perl.sh
  16. 2
      satellites/functions/compile/python.sh
  17. 2
      satellites/functions/compile/qt.sh
  18. 2
      satellites/functions/compile/waf.sh
  19. 7
      satellites/functions/vcs/git.sh
  20. 23
      satellites/functions/vcs/svn.sh
  21. 2
      satellites/gfm-git.sat
  22. 2
      satellites/giblib.sat
  23. 4
      satellites/go.sat
  24. 13
      satellites/hostapd.sat
  25. 23
      satellites/i3.sat
  26. 14
      satellites/iasl.sat
  27. 23
      satellites/jsoncpp.sat
  28. 14
      satellites/libbsd.sat
  29. 4
      satellites/libev.sat
  30. 14
      satellites/libgdiplus.sat
  31. 14
      satellites/libsrtp.sat
  32. 2
      satellites/libticables-git.sat
  33. 2
      satellites/libticalcs-git.sat
  34. 2
      satellites/libticonv-git.sat
  35. 2
      satellites/libtifiles-git.sat
  36. 6
      satellites/libwebp.sat
  37. 2
      satellites/libxdg-basedir.sat
  38. 4
      satellites/libxkbcommon.sat
  39. 12
      satellites/makerom-git.sat
  40. 24
      satellites/mbedtls.sat
  41. 16
      satellites/minizip.sat
  42. 20
      satellites/mono.sat
  43. 4
      satellites/mpv.sat
  44. 13
      satellites/ninja.sat
  45. 20
      satellites/openrc.sat
  46. 14
      satellites/opus.sat
  47. 14
      satellites/ortp.sat
  48. 2
      satellites/padxorer.sat
  49. 20
      satellites/protobuf.sat
  50. 4
      satellites/python3-requests.sat
  51. 9
      satellites/python3-setuptools.sat
  52. 17
      satellites/qt5-declarative.sat
  53. 17
      satellites/qt5-webchannel.sat
  54. 19
      satellites/qt5-webengine.sat
  55. 17
      satellites/qt5-x11extras.sat
  56. 5
      satellites/qutebrowser.sat
  57. 14
      satellites/snappy.sat
  58. 4
      satellites/steam.sat
  59. 8
      satellites/streamlink.sat
  60. 15
      satellites/syncthing.sat
  61. 4
      satellites/teeworlds.sat
  62. 16
      satellites/texmaker.sat
  63. 2
      satellites/tilp-git.sat
  64. 114
      satellites/virtualbox.sat
  65. 2
      satellites/volumeicon.sat
  66. 5
      satellites/waf.sat
  67. 8
      satellites/wine.sat
  68. 4
      satellites/xcb-util-xrm.sat
  69. 4
      satellites/youtube-dl.sat
  70. 2
      todo.txt

6
astronaut/astronaut

@ -75,7 +75,7 @@ unset update_url
_show_help() {
echo "This astronaut will help you build some satellites.
Just describe what he's got to do in a satellite file.
Usage: $0 [-sbipr <dir>] [-Id] [-o <options>] <satellite>
Usage: $0 [-bsirp <dir>] [-hIdv] [-o <options>] <satellite>
-h/? Show this message
-b Set build directory [WARNING: Will be deleted before build]
@ -188,7 +188,7 @@ extract() {
}
getfile() {
cp -r "$dir_source/$name/$1" "$dir_build/$1"
cp -a "$dir_source/$name/$1" "$dir_build/$1"
}
extrafile() {
@ -270,7 +270,7 @@ option() {
if [ "$1" ]; then
if [ "$enabled" = true ]; then
eval $@
eval "$@"
fi
else
return $([ "$enabled" = true ])

29
astronaut/astronautpkg

@ -30,9 +30,32 @@ if [ -d "$dir_install/$dir_prefix/$dir_infodir" ]; then
gzip -9 -r "$dir_install/$dir_prefix/$dir_infodir"
fi
# _dir_pkgtools should be set from a configuration file (e.g. ~/.astronaut.conf), and points to wherever you want your packages to be placed.
# Generate slack-desc for proper compliance, even if it's completely redundant
#mkdir -p "$dir_install/install"
#cat > "$dir_install/install/slack-desc" << EOF
## HOW TO EDIT THIS FILE:
## The "handy ruler" below makes it easier to edit a package description. Line
## up the first '|' above the ':' following the base package name, and the '|'
## on the right side marks the last column you can put a character in. You must
## make exactly 11 lines for the formatting to be correct. It's also
## customary to leave one space after the ':'.
#$(printf %$(printf '%s' "$_satname" | wc -c)s)|-----handy-ruler------------------------------------------------------|
#$_satname: $_satname (Generated with astronautpkg)
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#$_satname:
#EOF
# dir_wrapper_pkgtools should be set from a configuration file (e.g. ~/.astronaut.conf), and points to wherever you want your packages to be placed.
[ "$dir_wrapper_pkgtools" ] && mkdir -p "$dir_wrapper_pkgtools" || dir_wrapper_pkgtools="$_topdir"
cd "$dir_install"
export PATH="$PATH:/sbin"
$_fakeroot makepkg -l y -c n "$dir_wrapper_pkgtools/$_satname-$(echo "$version" | sed -e 's/-/_/g')-$(uname -m)-astro.tgz"
PATH="$PATH:/sbin" $_fakeroot makepkg -l y -c n "$dir_wrapper_pkgtools/$_satname-$(echo "$version" | sed -e 's/-/_/g')-$(uname -m)-astro.tgz"

2
satellites/3dstool.sat → graveyard/unmaintained_satellites/3dstool.sat

@ -1,7 +1,7 @@
import 'compile/cmake'
name=3dstool
version=1.0.17 # TODO: Untested
version=1.0.18 # TODO: Untested
update_url="https://github.com/dnasdw/$name/releases"
update_names="/archive/v$version.tar.gz"

13
graveyard/unmaintained_satellites/bcunit-git.sat

@ -0,0 +1,13 @@
import 'vcs/git'
import 'compile/configure'
name=bcunit
vcs_git "https://github.com/BelledonneCommunications/$name"
header_end
cd "$name"
./autogen.sh
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

23
graveyard/unmaintained_satellites/kbuild.sat

@ -0,0 +1,23 @@
import 'vcs/svn'
name=kBuild
revision=2823
version=r$revision
vcs_svn 'http://svn.netlabs.org/repos/kbuild/trunk' 2823
header_end
cd trunk
rm -rf kBuild/bin # Remove prebuilts
variables="
NIX_INSTALL_DIR=/$dir_prefix
MY_INST_BIN=$dir_prefix/$dir_bindir/
MY_INST_DATA=$dir_prefix/$dir_datadir/$name/
MY_INST_DOC=$dir_prefix/$dir_docdir/$name/
"
kBuild/env.sh --full make -f bootstrap.gmk $variables
kBuild/env.sh --full-with-bin kmk $variables PATH_INS="$dir_install" install
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/scrot.sat → graveyard/unmaintained_satellites/scrot.sat

@ -18,7 +18,7 @@ for x in $(cat ../debian/patches/series); do
patch -p1 -i ../debian/patches/$x
done
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

15
satellites/bctoolbox.sat

@ -0,0 +1,15 @@
import 'compile/cmake'
name=bctoolbox
version=0.4.0
update_url="https://github.com/BelledonneCommunications/$name/releases"
update_names="/archive/$version.tar.gz"
dlextract "https://github.com/BelledonneCommunications/$name/archive/$version.tar.gz" \
'963e0a83feda8b0a6c10d646573aae28'
header_end
cd "$name-$version"
compile_cmake -- -DENABLE_TESTS=OFF -DENABLE_TESTS_COMPONENT=OFF -DENABLE_STATIC=OFF
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

13
satellites/bluez-alsa-git.sat

@ -0,0 +1,13 @@
import 'vcs/git'
import 'compile/configure'
name=bluez-alsa
vcs_git "https://github.com/Arkq/$name"
header_end
cd "$name"
autoreconf -fi
compile_configure -- --enable-aac --enable-debug --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

12
satellites/ctrtool-git.sat

@ -0,0 +1,12 @@
import 'vcs/git'
name=Project_CTR
vcs_git "https://github.com/profi200/$name"
header_end
cd "$name/ctrtool"
make
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" ctrtool
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

213
satellites/extrafiles/i3/iconsupport.patch

@ -1,6 +1,6 @@
diff -Nurp ../i3-4.12/include/atoms_rest.xmacro ./include/atoms_rest.xmacro
--- ../i3-4.12/include/atoms_rest.xmacro 2016-03-06 16:17:18.000000000 +0100
+++ ./include/atoms_rest.xmacro 2016-10-11 23:56:12.406428013 +0200
diff -Nurp ../i3-4.13/include/atoms_rest.xmacro ./include/atoms_rest.xmacro
--- ../i3-4.13/include/atoms_rest.xmacro 2016-11-08 19:54:01.000000000 +0100
+++ ./include/atoms_rest.xmacro 2016-11-13 14:14:05.086086381 +0100
@@ -1,6 +1,7 @@
xmacro(_NET_WM_USER_TIME)
xmacro(_NET_STARTUP_ID)
@ -9,38 +9,40 @@ diff -Nurp ../i3-4.12/include/atoms_rest.xmacro ./include/atoms_rest.xmacro
xmacro(WM_PROTOCOLS)
xmacro(WM_DELETE_WINDOW)
xmacro(UTF8_STRING)
diff -Nurp ../i3-4.12/include/data.h ./include/data.h
--- ../i3-4.12/include/data.h 2016-03-06 16:17:18.000000000 +0100
+++ ./include/data.h 2016-10-11 23:56:12.407428013 +0200
@@ -426,6 +426,9 @@ struct Window {
diff -Nurp ../i3-4.13/include/data.h ./include/data.h
--- ../i3-4.13/include/data.h 2016-11-08 19:54:01.000000000 +0100
+++ ./include/data.h 2016-11-13 14:40:42.765019561 +0100
@@ -440,6 +440,11 @@ struct Window {
/* aspect ratio from WM_NORMAL_HINTS (MPlayer uses this for example) */
double aspect_ratio;
+
+ /** Window icon, array of size 16x16 containing the ARGB pixels */
+ uint32_t* icon;
+ /** Window icon, as array of ARGB pixels */
+ unsigned char *icon;
+ int icon_width;
+ int icon_height;
};
/**
diff -Nurp ../i3-4.12/include/libi3.h ./include/libi3.h
--- ../i3-4.12/include/libi3.h 2016-03-06 16:17:18.000000000 +0100
+++ ./include/libi3.h 2016-10-11 23:56:12.407428013 +0200
@@ -587,6 +587,11 @@ color_t draw_util_hex_to_color(const cha
diff -Nurp ../i3-4.13/include/libi3.h ./include/libi3.h
--- ../i3-4.13/include/libi3.h 2016-11-08 19:54:01.000000000 +0100
+++ ./include/libi3.h 2016-11-13 14:40:49.707019271 +0100
@@ -586,6 +586,11 @@ color_t draw_util_hex_to_color(const cha
void draw_util_text(i3String *text, surface_t *surface, color_t fg_color, color_t bg_color, int x, int y, int max_width);
/**
+ * Draw the given image using libi3.
+ */
+void draw_util_image(unsigned char *pixels, surface_t *surface, int x, int y, int width, int height);
+void draw_util_image(unsigned char *src, int src_width, int src_height, surface_t *surface, int x, int y, int width, int height);
+
+/**
* Draws a filled rectangle.
* This function is a convenience wrapper and takes care of flushing the
* surface as well as restoring the cairo state.
diff -Nurp ../i3-4.12/include/window.h ./include/window.h
--- ../i3-4.12/include/window.h 2016-03-06 16:17:18.000000000 +0100
+++ ./include/window.h 2016-10-11 23:56:12.408428013 +0200
@@ -87,3 +87,9 @@ void window_update_hints(i3Window *win,
diff -Nurp ../i3-4.13/include/window.h ./include/window.h
--- ../i3-4.13/include/window.h 2016-11-08 19:54:01.000000000 +0100
+++ ./include/window.h 2016-11-13 14:14:05.088086381 +0100
@@ -89,3 +89,9 @@ void window_update_hints(i3Window *win,
*
*/
void window_update_motif_hints(i3Window *win, xcb_get_property_reply_t *prop, border_style_t *motif_border_style);
@ -50,11 +52,11 @@ diff -Nurp ../i3-4.12/include/window.h ./include/window.h
+ *
+ */
+void window_update_icon(i3Window *win, xcb_get_property_reply_t *prop);
diff -Nurp ../i3-4.12/libi3/draw_util.c ./libi3/draw_util.c
--- ../i3-4.12/libi3/draw_util.c 2016-03-06 16:17:18.000000000 +0100
+++ ./libi3/draw_util.c 2016-10-11 23:56:12.408428013 +0200
@@ -153,6 +153,39 @@ void draw_util_text(i3String *text, surf
#endif
diff -Nurp ../i3-4.13/libi3/draw_util.c ./libi3/draw_util.c
--- ../i3-4.13/libi3/draw_util.c 2016-11-08 19:54:01.000000000 +0100
+++ ./libi3/draw_util.c 2016-11-13 14:44:55.628008986 +0100
@@ -135,6 +135,41 @@ void draw_util_text(i3String *text, surf
cairo_surface_mark_dirty(surface->surface);
}
+
@ -64,39 +66,41 @@ diff -Nurp ../i3-4.12/libi3/draw_util.c ./libi3/draw_util.c
+ * surface as well as restoring the cairo state.
+ *
+ */
+void draw_util_image(unsigned char *pixels, surface_t *surface, int x, int y, int width, int height) {
+void draw_util_image(unsigned char *src, int src_width, int src_height, surface_t *surface, int x, int y, int width, int height) {
+ RETURN_UNLESS_SURFACE_INITIALIZED(surface);
+
+#if CAIRO_SUPPORT
+ cairo_save(surface->cr);
+
+ cairo_surface_t *image;
+ double scale;
+
+ cairo_save(surface->cr);
+
+ image = cairo_image_surface_create_for_data(
+ pixels,
+ src,
+ CAIRO_FORMAT_ARGB32,
+ width,
+ height,
+ width * 4);
+ src_width,
+ src_height,
+ src_width * 4);
+
+ cairo_translate(surface->cr, x, y);
+
+ scale = MIN((double)width / src_width, (double)height / src_height);
+ cairo_scale(surface->cr, scale, scale);
+
+ cairo_set_operator(surface->cr, CAIRO_OPERATOR_OVER);
+ cairo_set_source_surface(surface->cr, image, x, y);
+ cairo_rectangle(surface->cr, x, y, width, height);
+ cairo_fill(surface->cr);
+ cairo_set_source_surface(surface->cr, image, 0, 0);
+ cairo_paint(surface->cr);
+
+ cairo_surface_destroy(image);
+
+ cairo_restore(surface->cr);
+#endif
+}
+
/**
* Draws a filled rectangle.
* This function is a convenience wrapper and takes care of flushing the
diff -Nurp ../i3-4.12/src/handlers.c ./src/handlers.c
--- ../i3-4.12/src/handlers.c 2016-03-06 16:17:18.000000000 +0100
+++ ./src/handlers.c 2016-10-11 23:56:12.409428013 +0200
@@ -1295,6 +1295,20 @@ static bool handle_strut_partial_change(
diff -Nurp ../i3-4.13/src/handlers.c ./src/handlers.c
--- ../i3-4.13/src/handlers.c 2016-11-08 19:54:01.000000000 +0100
+++ ./src/handlers.c 2016-11-13 14:36:19.002030592 +0100
@@ -1287,6 +1287,20 @@ static bool handle_strut_partial_change(
return true;
}
@ -117,28 +121,28 @@ diff -Nurp ../i3-4.12/src/handlers.c ./src/handlers.c
/* Returns false if the event could not be processed (e.g. the window could not
* be found), true otherwise */
typedef bool (*cb_property_handler_t)(void *data, xcb_connection_t *c, uint8_t state, xcb_window_t window, xcb_atom_t atom, xcb_get_property_reply_t *property);
@@ -1315,7 +1329,8 @@ static struct property_handler_t propert
{0, 128, handle_windowrole_change},
@@ -1308,7 +1322,8 @@ static struct property_handler_t propert
{0, 128, handle_class_change},
{0, UINT_MAX, handle_strut_partial_change},
- {0, UINT_MAX, handle_window_type}};
+ {0, UINT_MAX, handle_window_type},
{0, UINT_MAX, handle_window_type},
- {0, 5 * sizeof(uint64_t), handle_motif_hints_change}};
+ {0, 5 * sizeof(uint64_t), handle_motif_hints_change},
+ {0, UINT_MAX, handle_windowicon_change}};
#define NUM_HANDLERS (sizeof(property_handlers) / sizeof(struct property_handler_t))
/*
@@ -1336,6 +1351,7 @@ void property_handlers_init(void) {
property_handlers[7].atom = XCB_ATOM_WM_CLASS;
@@ -1330,6 +1345,7 @@ void property_handlers_init(void) {
property_handlers[8].atom = A__NET_WM_STRUT_PARTIAL;
property_handlers[9].atom = A__NET_WM_WINDOW_TYPE;
+ property_handlers[10].atom = A__NET_WM_ICON;
property_handlers[10].atom = A__MOTIF_WM_HINTS;
+ property_handlers[11].atom = A__NET_WM_ICON;
}
static void property_notify(uint8_t state, xcb_window_t window, xcb_atom_t atom) {
diff -Nurp ../i3-4.12/src/manage.c ./src/manage.c
--- ../i3-4.12/src/manage.c 2016-03-06 16:17:18.000000000 +0100
+++ ./src/manage.c 2016-10-11 23:56:12.410428013 +0200
@@ -92,6 +92,8 @@ void manage_window(xcb_window_t window,
diff -Nurp ../i3-4.13/src/manage.c ./src/manage.c
--- ../i3-4.13/src/manage.c 2016-11-08 19:54:01.000000000 +0100
+++ ./src/manage.c 2016-11-13 14:14:05.090086380 +0100
@@ -91,6 +91,8 @@ void manage_window(xcb_window_t window,
role_cookie, startup_id_cookie, wm_hints_cookie,
wm_normal_hints_cookie, motif_wm_hints_cookie, wm_user_time_cookie, wm_desktop_cookie;
@ -147,7 +151,7 @@ diff -Nurp ../i3-4.12/src/manage.c ./src/manage.c
geomc = xcb_get_geometry(conn, d);
/* Check if the window is mapped (it could be not mapped when intializing and
@@ -163,6 +165,7 @@ void manage_window(xcb_window_t window,
@@ -162,6 +164,7 @@ void manage_window(xcb_window_t window,
motif_wm_hints_cookie = GET_PROPERTY(A__MOTIF_WM_HINTS, 5 * sizeof(uint64_t));
wm_user_time_cookie = GET_PROPERTY(A__NET_WM_USER_TIME, UINT32_MAX);
wm_desktop_cookie = GET_PROPERTY(A__NET_WM_DESKTOP, UINT32_MAX);
@ -155,7 +159,7 @@ diff -Nurp ../i3-4.12/src/manage.c ./src/manage.c
DLOG("Managing window 0x%08x\n", window);
@@ -176,6 +179,7 @@ void manage_window(xcb_window_t window,
@@ -177,6 +180,7 @@ void manage_window(xcb_window_t window,
window_update_class(cwindow, xcb_get_property_reply(conn, class_cookie, NULL), true);
window_update_name_legacy(cwindow, xcb_get_property_reply(conn, title_cookie, NULL), true);
window_update_name(cwindow, xcb_get_property_reply(conn, utf8_title_cookie, NULL), true);
@ -163,7 +167,7 @@ diff -Nurp ../i3-4.12/src/manage.c ./src/manage.c
window_update_leader(cwindow, xcb_get_property_reply(conn, leader_cookie, NULL));
window_update_transient_for(cwindow, xcb_get_property_reply(conn, transient_cookie, NULL));
window_update_strut_partial(cwindow, xcb_get_property_reply(conn, strut_cookie, NULL));
@@ -184,6 +188,8 @@ void manage_window(xcb_window_t window,
@@ -185,6 +189,8 @@ void manage_window(xcb_window_t window,
window_update_hints(cwindow, xcb_get_property_reply(conn, wm_hints_cookie, NULL), &urgency_hint);
border_style_t motif_border_style = BS_NORMAL;
window_update_motif_hints(cwindow, xcb_get_property_reply(conn, motif_wm_hints_cookie, NULL), &motif_border_style);
@ -172,24 +176,24 @@ diff -Nurp ../i3-4.12/src/manage.c ./src/manage.c
xcb_size_hints_t wm_size_hints;
if (!xcb_icccm_get_wm_size_hints_reply(conn, wm_normal_hints_cookie, &wm_size_hints, NULL))
memset(&wm_size_hints, '\0', sizeof(xcb_size_hints_t));
diff -Nurp ../i3-4.12/src/render.c ./src/render.c
--- ../i3-4.12/src/render.c 2016-03-06 16:17:18.000000000 +0100
+++ ./src/render.c 2016-10-11 23:56:12.410428013 +0200
@@ -127,6 +127,10 @@ void render_con(Con *con, bool render_fu
diff -Nurp ../i3-4.13/src/render.c ./src/render.c
--- ../i3-4.13/src/render.c 2016-11-08 19:54:01.000000000 +0100
+++ ./src/render.c 2016-11-13 14:26:45.732054568 +0100
@@ -125,6 +125,10 @@ void render_con(Con *con, bool render_fu
/* find the height for the decorations */
params.deco_height = render_deco_height();
+ /* minimum decoration height to allow icon to fit
+ * not actuuly required, icon would be cropped otherwise */
+ * not actually required, icon would be cropped otherwise */
+ params.deco_height = (params.deco_height < 16) ? 16 : params.deco_height;
+
/* precalculate the sizes to be able to correct rounding errors */
params.sizes = precalculate_sizes(con, &params);
diff -Nurp ../i3-4.12/src/window.c ./src/window.c
--- ../i3-4.12/src/window.c 2016-03-06 16:17:18.000000000 +0100
+++ ./src/window.c 2016-10-11 23:56:44.972426651 +0200
@@ -19,6 +19,7 @@ void window_free(i3Window *win) {
diff -Nurp ../i3-4.13/src/window.c ./src/window.c
--- ../i3-4.13/src/window.c 2016-11-08 19:54:01.000000000 +0100
+++ ./src/window.c 2016-11-13 14:48:01.177001226 +0100
@@ -17,6 +17,7 @@ void window_free(i3Window *win) {
FREE(win->class_class);
FREE(win->class_instance);
i3string_free(win->name);
@ -197,45 +201,17 @@ diff -Nurp ../i3-4.12/src/window.c ./src/window.c
FREE(win->ran_assignments);
FREE(win);
}
@@ -367,3 +368,88 @@ void window_update_motif_hints(i3Window
@@ -365,3 +366,62 @@ void window_update_motif_hints(i3Window
#undef MWM_DECOR_BORDER
#undef MWM_DECOR_TITLE
}
+
+/*
+ * Copy and resize icon if needed
+ */
+void copy_icon_with_resize(uint32_t *dst, int width, int height, uint32_t* src, int s_width, int s_height)
+{
+ int i, j;
+
+ if (width == s_width && height == s_height) {
+ /* easy case, same dimensions, just copy data */
+ memcpy(dst, src, width*height*sizeof(uint32_t));
+ return;
+ }
+
+ uint32_t* row = src;
+ int xstep = s_width / width;
+ int ystep = s_height / height * s_width;
+
+ for (i=0; i < height; ++i) {
+ uint32_t* ptr = row;
+ for(j=0; j < width; ++j) {
+ *dst++ = *ptr;
+ ptr+=xstep;
+ }
+ row += ystep;
+ }
+}
+
+
+void window_update_icon(i3Window *win, xcb_get_property_reply_t *prop)
+{
+ uint32_t *data = NULL;
+ uint64_t len = 0;
+
+ if(!prop || prop->type != XCB_ATOM_CARDINAL || prop->format != 32) {
+ if (!prop || prop->type != XCB_ATOM_CARDINAL || prop->format != 32) {
+ DLOG("_NET_WM_ICON is not set\n");
+ FREE(prop);
+ return;
@ -260,7 +236,7 @@ diff -Nurp ../i3-4.12/src/window.c ./src/window.c
+
+ if (len == 0 || (crt_len >= 16*16 && crt_len < len)) {
+ len = crt_len;
+ data = prop_value;
+ data = prop_value;
+ }
+ if (len == 16*16) {
+ break; // found 16 pixels icon
@ -280,27 +256,44 @@ diff -Nurp ../i3-4.12/src/window.c ./src/window.c
+ LOG("Got _NET_WM_ICON of size: (%d,%d)\n", data[0], data[1]);
+ win->name_x_changed = true; // trigger a redraw
+
+ FREE(win->icon);
+ win->icon = malloc(16 * 16 * sizeof(uint32_t));
+ copy_icon_with_resize(win->icon, 16, 16, data + 2, data[0], data[1]);
+ win->icon_width = data[0];
+ win->icon_height = data[1];
+
+ win->icon = malloc(len * 4);
+ memcpy(win->icon, &data[2], len * 4);
+
+ FREE(prop);
+}
diff -Nurp ../i3-4.12/src/x.c ./src/x.c
--- ../i3-4.12/src/x.c 2016-03-06 16:17:18.000000000 +0100
+++ ./src/x.c 2016-10-11 23:56:12.412428013 +0200
@@ -571,6 +571,10 @@ void x_draw_decoration(Con *con) {
//DLOG("indent_level = %d, indent_mult = %d\n", indent_level, indent_mult);
int indent_px = (indent_level * 5) * indent_mult;
diff -Nurp ../i3-4.13/src/x.c ./src/x.c
--- ../i3-4.13/src/x.c 2016-11-08 19:54:01.000000000 +0100
+++ ./src/x.c 2016-11-13 14:48:26.856000152 +0100
@@ -538,6 +538,7 @@ void x_draw_decoration(Con *con) {
+ if (win->icon) {
+ indent_px += 18;
+ }
/* 6: draw the title */
int text_offset_y = (con->deco_rect.height - config.font.height) / 2;
+ int text_offset_x = 0;
struct Window *win = con->window;
if (win == NULL) {
@@ -567,6 +568,9 @@ void x_draw_decoration(Con *con) {
if (win->name == NULL)
goto copy_pixmaps;
+ if (win->icon)
+ text_offset_x = 18;
+
int mark_width = 0;
if (config.show_marks && !TAILQ_EMPTY(&(con->marks_head))) {
char *formatted_mark = sstrdup("");
@@ -611,6 +615,22 @@ void x_draw_decoration(Con *con) {
@@ -602,12 +606,30 @@ void x_draw_decoration(Con *con) {
i3String *title = con->title_format == NULL ? win->name : con_parse_title_format(con);
draw_util_text(title, &(parent->frame_buffer),
p->color->text, p->color->background,
- con->deco_rect.x + logical_px(2),
+ con->deco_rect.x + text_offset_x + logical_px(2),
con->deco_rect.y + text_offset_y,
- con->deco_rect.width - mark_width - 2 * logical_px(2));
+ con->deco_rect.width - text_offset_x - mark_width - 2 * logical_px(2));
if (con->title_format != NULL)
I3STRING_FREE(title);
@ -312,9 +305,11 @@ diff -Nurp ../i3-4.12/src/x.c ./src/x.c
+ int icon_offset_y = (con->deco_rect.height - height) / 2;
+
+ draw_util_image(
+ (unsigned char *)win->icon,
+ win->icon,
+ win->icon_width,
+ win->icon_height,
+ &(parent->frame_buffer),
+ con->deco_rect.x + indent_px - width,
+ con->deco_rect.x + text_offset_x - width,
+ con->deco_rect.y + icon_offset_y,
+ width,
+ height);

14
satellites/fdk-aac.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=fdk-aac
version=0.1.4
update_url="https://sourceforge.net/projects/opencore-amr/files/$name/"
dlextract "https://sourceforge.net/projects/opencore-amr/files/$name/$name-$version.tar.gz" \
'e274a7d7f6cd92c71ec5c78e4dc9f8b7'
header_end
cd "$name-$version"
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/ffmpeg.sat

@ -1,9 +1,9 @@
name=ffmpeg
version=3.2
version=3.2.2
update_url='https://ffmpeg.org/download.html'
dlextract "http://ffmpeg.org/releases/$name-$version.tar.bz2" \
'ce8fb81e2742eb70548956492c4625b8'
'82cf25d36df70ee995bbdb3efc079934'
header_end
cd "$name-$version"

2
satellites/functions/compile/cmake.sh

@ -24,7 +24,7 @@ compile_cmake() {
-DCMAKE_INSTALL_DOCDIR="$dir_docdir" \
-DCMAKE_INSTALL_INFODIR="$dir_infodir" \
-DCMAKE_INSTALL_LOCALEDIR="$dir_localedir" \
$@
"$@"
make
[ "$noinstall" = false ] && make DESTDIR="$dir_install" install
cd "$olddir"

12
satellites/functions/compile/configure.sh

@ -3,16 +3,18 @@ define_option "build=: Explicity specify the host machine's target triplet"
compile_configure() {
local builddir=''
local nomake=false
local noinstall=false
local olddir="$PWD"
local makeflags=''
local OPTIND=1
local opt
while getopts 'b:m:I' opt; do case "$opt" in
while getopts 'b:m:MI' opt; do case "$opt" in
b) local builddir="$OPTARG" ;;
I) local noinstall=true ;;
m) local makeflags="$OPTARG" ;;
M) local nomake=true ;;
I) local noinstall=true ;;
esac; done
shift $((OPTIND-1))
[ "$1" = '--' ] && shift
@ -39,10 +41,10 @@ compile_configure() {
--docdir="/$dir_prefix/$dir_docdir/$name" \
--infodir="/$dir_prefix/$dir_infodir" \
--localedir="/$dir_prefix/$dir_localedir" \
$build $cross $@
$build $cross "$@"
make $makeflags
[ "$noinstall" = false ] && make DESTDIR="$dir_install" $makeflags install
[ "$nomake" = false ] && make $makeflags
[ "$nomake" = false -a "$noinstall" = false ] && make DESTDIR="$dir_install" $makeflags install
[ "$builddir" ] && cd "$olddir" || true
}

2
satellites/functions/compile/perl.sh

@ -17,7 +17,7 @@ compile_perl() {
--install_path bin="/$dir_prefix/$dir_bindir" \
--install_path bindoc="/$dir_prefix/$dir_mandir/man1" \
--install_path libdoc="/$dir_prefix/$dir_mandir/man3" \
$@
"$@"
./Build
[ "$noinstall" = false ] && ./Build install || true
}

2
satellites/functions/compile/python.sh

@ -1,4 +1,4 @@
compile_python() {
local ver="$1"; shift
python$ver setup.py install --prefix="/$dir_prefix" --root="$dir_install" --optimize=2 $@
python$ver setup.py install --prefix="/$dir_prefix" --root="$dir_install" --optimize=2 "$@"
}

2
satellites/functions/compile/qt.sh

@ -1,7 +1,7 @@
compile_qt() {
local ver="$1"; shift
$(compile_qt_get_cmd qmake "$ver") PREFIX="/$dir_prefix" build_mode=release build_type=shared $@
$(compile_qt_get_cmd qmake "$ver") PREFIX="/$dir_prefix" build_mode=release build_type=shared "$@"
make
make INSTALL_ROOT="$dir_install" install
}

2
satellites/functions/compile/waf.sh

@ -14,5 +14,5 @@ compile_waf() {
--bindir="/$dir_prefix/$dir_bindir" \
--libdir="/$dir_prefix/$dir_libdir" \
--destdir="$dir_install" \
$WAFFLAGS $@
"$WAFFLAGS" "$@"
}

7
satellites/functions/vcs/git.sh

@ -1,17 +1,18 @@
vcs_git() {
local reponame="$(basename "$1")"
local reponame="$(basename "$1")"; shift
local branch="$(basename "$1")"
local dir="$dir_source/$name/$reponame"
if [ ! -d "$dir" ]; then
# Clone new repo
git clone --recursive --depth=1 "$1" "$dir"
git clone --recursive --depth=1 $([ "$branch" ] && echo "-b $branch")"$1" "$dir"
cd "$dir"
echo "$(git rev-parse @)" > "${dir}_rev_$_satname"
vcs_compile=true
else
cd "$dir"
if git fetch > /dev/null; then
if git fetch $([ "$branch" ] && echo "origin $branch") > /dev/null; then
git reset --hard FETCH_HEAD > /dev/null
fi
local rev="$(git rev-parse @)"

23
satellites/functions/vcs/svn.sh

@ -0,0 +1,23 @@
vcs_svn() {
local reponame="$(basename "$1")"
local dir="$dir_source/$name/$reponame"
[ "$2" ] && local revision="-r $2" || local revision=""
if [ ! -d "$dir" ]; then
# Clone new repo
svn co $revision "$1" "$dir"
echo "$(svn info "$dir" --show-item revision)" > "${dir}_rev_$_satname"
vcs_compile=true
else
svn up $revision "$dir" || true
local rev="$(svn info "$dir" --show-item revision)"
if [ "$rev" != "$(cat "${dir}_rev_$_satname" 2> /dev/null || true)" ]; then
echo "$rev" > "${dir}_rev_$_satname"
vcs_compile=true
fi
fi
[ "$2" ] || version="r$(svn info "$dir" --show-item revision | xargs)"
getfile "$reponame"
}

2
satellites/gfm-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilp_and_gfm'
header_end
cd tilp_and_gfm/gfm/trunk
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/giblib.sat

@ -19,7 +19,7 @@ for x in $(cat ../debian/patches/series); do
patch -p1 -i ../debian/patches/$x
done
autoreconf -i
autoreconf -fi
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/go.sat

@ -1,12 +1,12 @@
name=go
version=1.7.3
version=1.7.4
bootstrap_version=1.4.3
update_url='https://golang.org/dl/'
define_option '!bootstrap: Bootstrap this program'
dlextract "https://storage.googleapis.com/golang/$name$version.src.tar.gz" \
'83d1b7bd4281479ab7d153e5152c9fc9'
'49c1076428a5d3b5ad7ac65233fcca2f'
if option bootstrap; then
download "https://storage.googleapis.com/golang/$name$bootstrap_version.src.tar.gz" \

13
satellites/hostapd.sat

@ -4,15 +4,12 @@ update_url="http://w1.fi/$name/"
define_option '!rtlxdrv: Build with support for RTL8188{C|CU|CUS} wifi chips'
dlextract "http://w1.fi/releases/$name-$version.tar.gz" \
'eaa56dce9bd8f1d195eb62596eab34c7'
if option rtlxdrv; then
version=2.5 # The patch still has to be updated
dlextract "http://w1.fi/releases/$name-$version.tar.gz" \
'69f9cec3f76d74f402864a43e4f8624f'
dlfile 'https://raw.githubusercontent.com/pritambaral/hostapd-rtl871xdrv/547005ed466bbd632cff87b706e339874025acb0/rtlxdrv.patch' \
'ca8697f0254e3444f1e3758100c4f949'
else
dlextract "http://w1.fi/releases/$name-$version.tar.gz" \
'eaa56dce9bd8f1d195eb62596eab34c7'
dlfile 'https://raw.githubusercontent.com/pritambaral/hostapd-rtl871xdrv/601a3f19d78393018f39a2e38ad14bf2e3315a0a/rtlxdrv.patch' \
'fef4f428e4aae71f5202a61f656952da'
fi
header_end

23
satellites/i3.sat

@ -1,15 +1,15 @@
import 'compile/configure'
name=i3
version=4.12
version=4.13
update_url='http://i3wm.org/downloads/'
define_option '!window-icons: Patch for support for icons in the title'
dlextract "http://i3wm.org/downloads/$name-$version.tar.bz2" \
'308fc79ed252e1f3c8a093598e13e326'
'08d17dcf1fde665a15f7d411486546ae'
if option window-icons; then
#dlfile 'https://aur.archlinux.org/cgit/aur.git/plain/iconsupport.patch?h=i3-wm-iconpatch&id=df5ce8271b714937088bc797b5724c1f2c591c74' \
# '3fe4dbd039bc0934d641ac9328e7ef92'
extrafile 'iconsupport.patch'
fi
header_end
@ -18,19 +18,6 @@ cd "$name-$version"
option window-icons patch -p1 -i ../iconsupport.patch
# Fix install directories
sed -i -e "/\$(INSTALL)/s/bin/$(safe_sed "$dir_bindir")/" \
-e "/\$(INSTALL)/s/share/$(safe_sed "$dir_datadir")/" \
src/i3.mk i3-msg/i3-msg.mk i3-nagbar/i3-nagbar.mk \
i3-config-wizard/i3-config-wizard.mk i3bar/i3bar.mk \
i3-dump-log/i3-dump-log.mk i3-input/i3-input.mk
make install \
PREFIX="/$dir_prefix" \
SYSCONFDIR="/$dir_sysconfdir" \
DESTDIR="$dir_install"
make -C man
install -Dm644 -t "$dir_install/$dir_prefix/$dir_mandir/man1" man/*.1
compile_configure -b build -- --srcdir=..
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

14
satellites/iasl.sat

@ -0,0 +1,14 @@
name=acpica
version=20161117
update_url='https://acpica.org/downloads'
update_names="/files/$name-unix-$version.tar.gz"
dlextract "https://acpica.org/sites/$name/files/$name-unix-$version.tar.gz" \
'a08919942050b56955580bfa67855ce9'
header_end
cd "$name-unix-$version"
make
make DESTDIR="$dir_install" INSTALLDIR="/$dir_prefix/$dir_bindir" install
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

23
satellites/jsoncpp.sat

@ -0,0 +1,23 @@
import 'compile/cmake'
name=jsoncpp
version=1.7.7
update_url="https://github.com/open-source-parsers/$name/releases"
update_names="/archive/$version.tar.gz"
dlextract "https://github.com/open-source-parsers/$name/archive/$version.tar.gz" \
'9b51c65c563463220a8cb5fa33d525f8'
header_end
cd "$name-$version"
# Fix paths
sed -i -e "s/lib\${LIB_SUFFIX}\/pkgconfig/$(safe_sed "$dir_libdir/pkgconfig")/" CMakeLists.txt
compile_cmake -- \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF \
-DRUNTIME_INSTALL_DIR="/$dir_prefix/$dir_bindir" \
-DLIBRARY_INSTALL_DIR="/$dir_prefix/$dir_libdir"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

14
satellites/libbsd.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=libbsd
version=0.8.3
update_url='https://libbsd.freedesktop.org/releases/'
dlextract "https://libbsd.freedesktop.org/releases/$name-$version.tar.xz" \
'e935c1bb6cc98a4a43cb1da22795493a'
header_end
cd "$name-$version"
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/libev.sat

@ -1,11 +1,11 @@
import 'compile/configure'
name=libev
version=4.22
version=4.23
update_url="http://dist.schmorp.de/$name/"
dlextract "http://dist.schmorp.de/$name/$name-$version.tar.gz" \
'bf0007e37240103d3c2be80ca9bee3f9'
'f1dbf786ead8307e0d4f5f68f2f8526c'
header_end
cd "$name-$version"

14
satellites/libgdiplus.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=libgdiplus
version=4.2
update_url="https://download.mono-project.com/sources/$name/"
dlextract "https://download.mono-project.com/sources/$name/$name-$version.tar.gz" \
'3e68075aa0911d5ebc2b3739e85af0ea'
header_end
cd "$name-$version"
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

14
satellites/libsrtp.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=libsrtp
version=1.5.4
update_url="https://github.com/cisco/$name/releases"
dlextract "https://github.com/cisco/$name/archive/v$version.tar.gz" \
'64a9580f86a9c3e1c4986e944e6a5a84'
header_end
cd "$name-$version"
compile_configure -m shared_library
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/libticables-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilibs'
header_end
cd tilibs/libticables/trunk
autoreconf -i
autoreconf -fi
compile_configure -- --enable-libusb10
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/libticalcs-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilibs'
header_end
cd tilibs/libticalcs/trunk
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/libticonv-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilibs'
header_end
cd tilibs/libticonv/trunk
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/libtifiles-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilibs'
header_end
cd tilibs/libtifiles/trunk
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

6
satellites/libwebp.sat

@ -2,13 +2,15 @@ import 'compile/configure'
name=libwebp
version=0.5.1
update_url="https://developers.google.com/speed/webp/download"
update_url='https://developers.google.com/speed/webp/download'
dlextract "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/$name-$version.tar.gz" \
'3d7db92ebba5b4f679413d25c6040881'
header_end
cd "$name-$version"
compile_configure -- --disable-static
compile_configure -- \
--disable-static \
--enable-libwebpdemux
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/libxdg-basedir.sat

@ -13,7 +13,7 @@ header_end
cd "$name-$name-$version"
patch -p0 -i ../xdgGetRelativeHome-overflow.patch
autoreconf -i
autoreconf -fi
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/libxkbcommon.sat

@ -1,11 +1,11 @@
import 'compile/configure'
name=libxkbcommon
version=0.6.1
version=0.7.0
update_url='http://xkbcommon.org/'
dlextract "http://xkbcommon.org/download/$name-$version.tar.xz" \
'67a8f322b5fa32352272e811bb90dd73'
'61ba550fc529ea4d6f9faa2cad62c95f'
header_end
cd "$name-$version"

12
satellites/makerom-git.sat

@ -0,0 +1,12 @@
import 'vcs/git'
name=Project_CTR
vcs_git "https://github.com/profi200/$name"
header_end
cd "$name/makerom"
make
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" makerom
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

24
satellites/mbedtls.sat

@ -0,0 +1,24 @@
name=mbedtls
version=2.4.0
update_url='https://tls.mbed.org/'
dlextract "https://tls.mbed.org/download/$name-$version-apache.tgz" \
'4debf0e0eed7e75a00b7780830c9688e'
header_end
cd "$name-$version"
# enable flags for non-embedded systems (from ArchLinux)
sed -i 's|//\(#define MBEDTLS_THREADING_C\)|\1|' include/mbedtls/config.h
sed -i 's|//\(#define MBEDTLS_THREADING_PTHREAD\)|\1|' include/mbedtls/config.h
# Don't build static libraries
sed -i -e '/^all: shared/s/static//' library/Makefile
# Fix paths
sed -i -e "s/\(\$(DESTDIR)\/\)lib/\1$(safe_sed "$dir_libdir")/" \
-e "s/\(\$(DESTDIR)\/\)bin/\1$(safe_sed "$dir_bindir")/" Makefile
make SHARED=1 DESTDIR="$dir_install/$dir_prefix" install
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

16
satellites/minizip.sat

@ -0,0 +1,16 @@
import 'compile/configure'
name=zlib
version=1.2.8
update_url='http://zlib.net/'
dlextract "http://zlib.net/$name-$version.tar.xz" \
'28f1205d8dd2001f26fec1e8c2cebe37'
header_end
cd "$name-$version/contrib/minizip"
rm -f Makefile
autoreconf -fi
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

20
satellites/mono.sat

@ -0,0 +1,20 @@
import 'compile/configure'
name=mono
majver=4.6.2
version=$majver.7 # TODO: Untested
update_url="https://download.mono-project.com/sources/$name/"
dlextract "https://download.mono-project.com/sources/$name/$name-$version.tar.bz2" \
'601a96baa96a2e7acde1fb7e622322c4'
header_end
cd "$name-$majver"
# Fix mono_libdir
#sed -i -e "/mono_libdir=/s/\/lib/\/$(safe_sed "$dir_libdir")/" ./configure
# TODO: Move everything to the proper user-selected libdir
compile_configure -- --libdir="/$dir_prefix/lib"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/mpv.sat

@ -1,11 +1,11 @@
import 'compile/waf'
name=mpv
version=0.21.0
version=0.22.0
update_url="https://github.com/mpv-player/$name/releases"
dlextract "https://github.com/mpv-player/$name/archive/v$version.tar.gz" \
'e0d83a883bc34f67d568c025b036b584'
'aa56677b11c1b634a83c56f1c1c39c57'
header_end
cd "$name-$version"

13
satellites/ninja.sat

@ -1,14 +1,21 @@
name=ninja
version=1.7.1
version=1.7.2
update_url="https://github.com/ninja-build/$name/releases"
define_option '!bootstrap: Bootstrap this program'
dlextract "https://github.com/ninja-build/$name/archive/v$version.tar.gz" \
'e45bda009319f9af5385bb79e783da9f'
'7b482218757acbaeac4d4d54a3cd94e1'
header_end
cd "$name-$version"
./configure.py --bootstrap
if option bootstrap; then
./configure.py --bootstrap
else
./configure.py
ninja
fi
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" "$name"
install -Dm644 misc/bash-completion "$dir_install/$dir_prefix/$dir_datadir/bash-completion/completions/$name"

20
satellites/openrc.sat

@ -0,0 +1,20 @@
name=openrc
version=0.22.4 # TODO: Untested
update_url="https://github.com/OpenRC/$name/releases"
update_names="/archive/$version.tar.gz"
dlextract "https://github.com/OpenRC/$name/archive/$version.tar.gz" \
'23e32cb3dc9fdb9de0c935b059207f74'
header_end
cd "$name-$version"
make install \
DESTDIR="$dir_install" \
LIBNAME="$dir_libdir" \
PKG_PREFIX="/$dir_prefix" \
LIBEXECDIR="/$dir_libdir" \
BINDIR="/$dir_bindir" \
SBINDIR="/$dir_sbindir" \
SYSCONFDIR="/$dir_sysconfdir"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

14
satellites/opus.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=opus
version=1.1.3
update_url='http://www.opus-codec.org/downloads/'
dlextract "http://downloads.xiph.org/releases/$name/$name-$version.tar.gz" \
'32bbb6b557fe1b6066adc0ae1f08b629'
header_end
cd "$name-$version"
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

14
satellites/ortp.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=ortp
version=0.27.0
update_url="https://download.savannah.gnu.org/releases/linphone/$name/sources/"
dlextract "https://download.savannah.gnu.org/releases/linphone/$name/sources/$name-$version.tar.gz" \
'301d1e9e32d1ba5399bc82ceb11debf7'
header_end
cd "$name-$version"
compile_configure -- --disable-strict
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
graveyard/unmaintained_satellites/padxorer.sat → satellites/padxorer.sat

@ -7,6 +7,6 @@ dlfile "http://pastebin.com/raw/$paste" \
header_end
cc -x c -O3 "$paste" -o "$name"
install -Dm755 "$name" "$dir_install/$dir_prefix/bin/$name"
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" "$name"
# vim:set tabstop=4 shiftwidth=4 syntax=sh et:

20
satellites/protobuf.sat

@ -0,0 +1,20 @@
import 'compile/configure'
name=protobuf
version=3.1.0
update_url="https://github.com/google/$name/releases"
update_names="/archive/v$version.tar.gz"
dlextract "https://github.com/google/$name/archive/v$version.tar.gz" \
'14a532a7538551d5def317bfca41dace'
header_end
cd "$name-$version"
# From autogen.sh
autoreconf -f -i -Wall,no-obsolete
rm -rf autom4te.cache config.h.in~
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/python3-requests.sat

@ -1,11 +1,11 @@
import 'compile/python'
name=requests
version=2.11.1
version=2.12.3
update_url="https://github.com/kennethreitz/$name/releases"
dlextract "https://github.com/kennethreitz/$name/archive/v$version.tar.gz" \
'3007b144a7ce83ee16262b79e3acfa1b'
'bae63b3d54e548ccd97b86573a43f1aa'
header_end
cd "$name-$version"

9
satellites/python3-setuptools.sat

@ -1,12 +1,11 @@
import 'compile/python'
name=setuptools
version=28.8.0
update_url="https://pypi.python.org/pypi/$name"
update_names="$name-$version.tar.gz#md5="
version=30.2.0
update_url="https://github.com/pypa/$name/releases"
dlextract "https://pypi.python.org/packages/25/4e/1b16cfe90856235a13872a6641278c862e4143887d11a12ac4905081197f/$name-$version.tar.gz" \
'43d6eb25f60e8a2682a8f826ce9e3f42'
dlextract "https://github.com/pypa/$name/archive/v$version.tar.gz" \
'asdf'
header_end
cd "$name-$version"

17
satellites/qt5-declarative.sat

@ -0,0 +1,17 @@
import 'compile/qt'
name=qt5
submodule=declarative
majver=5.7
version=$majver.0
update_url='https://www.qt.io/download-open-source/'
update_names="qt-everywhere-opensource-src-$version.tar.gz"
dlextract "http://download.qt.io/official_releases/qt/$majver/$version/submodules/qt$submodule-opensource-src-$version.tar.xz" \
'0d9e461aa54dba4793253fa2eb501f9b'
header_end
cd "qt$submodule-opensource-src-$version"
compile_qt 5
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

17
satellites/qt5-webchannel.sat

@ -0,0 +1,17 @@
import 'compile/qt'
name=qt5
submodule=webchannel
majver=5.7
version=$majver.0
update_url='https://www.qt.io/download-open-source/'
update_names="qt-everywhere-opensource-src-$version.tar.gz"
dlextract "http://download.qt.io/official_releases/qt/$majver/$version/submodules/qt$submodule-opensource-src-$version.tar.xz" \
'dd7699ddeb203d77237ab58a06f9fbfa'
header_end
cd "qt$submodule-opensource-src-$version"
compile_qt 5
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

19
satellites/qt5-webengine.sat

@ -0,0 +1,19 @@
import 'compile/qt'
name=qt5
submodule=webengine
majver=5.7
version=$majver.0
update_url='https://www.qt.io/download-open-source/'
update_names="qt-everywhere-opensource-src-$version.tar.gz"
dlextract "http://download.qt.io/official_releases/qt/$majver/$version/submodules/qt$submodule-opensource-src-$version.tar.xz" \
'937f64886fbcb038d6fa4b44ae80cbeb'
header_end
cd "qt$submodule-opensource-src-$version"
compile_qt 5 \
WEBENGINE_CONFIG+='use_system_icu use_system_ffmpeg use_system_minizip use_system_libwebp use_system_libxslt use_system_libevent use_system_jsoncpp use_system_opus use_system_protobuf use_system_libsrtp use_system_snappy' # use_system_vpx
# Options can be found in tools/qmake/mkspecs/features/configure.prf
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

17
satellites/qt5-x11extras.sat

@ -0,0 +1,17 @@
import 'compile/qt'
name=qt5
submodule=x11extras
majver=5.7
version=$majver.0
update_url='https://www.qt.io/download-open-source/'
update_names="qt-everywhere-opensource-src-$version.tar.gz"
dlextract "http://download.qt.io/official_releases/qt/$majver/$version/submodules/qt$submodule-opensource-src-$version.tar.xz" \
'8733599cf5a91c62b185f689b2d402ee'
header_end
cd "qt$submodule-opensource-src-$version"
compile_qt 5
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

5
satellites/qutebrowser.sat

@ -15,12 +15,15 @@ sed -i -e "s/usr\/share/$(safe_sed "$dir_prefix/$dir_datadir")/" qutebrowser/uti
compile_python 3
sed -e '/^Name=/s/$/ (Webengine)/' \
-e '/^Exec=/s/%u/--backend webengine &/' "$name.desktop" > "$name-webengine.desktop"
# Install manpage
a2x -f manpage "doc/$name.1.asciidoc"
install -Dm644 -t "$dir_install/$dir_prefix/$dir_mandir/man1" "doc/$name.1"
# Install desktop and icons
install -Dm644 -t "$dir_install/$dir_prefix/$dir_datadir/applications" "$name.desktop"
install -Dm644 -t "$dir_install/$dir_prefix/$dir_datadir/applications" "$name.desktop" "$name-webengine.desktop"
for x in 16 24 32 48 64 96 128 256 512; do
install -Dm644 "icons/$name-${x}x$x.png" "$dir_install/$dir_prefix/$dir_datadir/icons/hicolor/${x}x$x/apps/$name.png"
done

14
satellites/snappy.sat

@ -0,0 +1,14 @@
import 'compile/configure'
name=snappy
version=1.1.3
update_url="https://github.com/google/$name/releases"
dlextract "https://github.com/google/$name/releases/download/$version/$name-$version.tar.gz" \
'7358c82f133dc77798e4c2062a749b73'
header_end
cd "$name-$version"
compile_configure -- --disable-static
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

4
satellites/steam.sat

@ -1,9 +1,9 @@
name=steam
version=1.0.0.53
version=1.0.0.54
update_url="http://repo.steampowered.com/$name/archive/precise/"
dlextract "http://repo.steampowered.com/$name/archive/precise/${name}_$version.tar.gz" \
'2c1ff88d15d64c3997551a9874b7b830'
'd1398490635615c428165e984a1ec71b'
header_end
cd "$name"

8
satellites/streamlink.sat

@ -1,11 +1,11 @@
import 'compile/python'
name=streamlink
version=0.0.2
update_url="https://pypi.python.org/pypi/$name"
version=0.1.0
update_url="https://github.com/$name/$name/releases"
dlextract "https://pypi.python.org/packages/df/12/261a31e4e00cc062e785fc6e23f2dcf813fd3397dbf258c241e1f1e494f8/$name-$version.tar.gz" \
'd37b05f8fdfe8336d66312422c4c952f'
dlextract "https://github.com/$name/$name/releases/download/$version/$name-$version.tar.gz" \
'3b54a7cfd6538853f9a8e86508e1cce5'
header_end
cd "$name-$version"

15
satellites/syncthing.sat

@ -1,9 +1,9 @@
name=syncthing
version=0.14.10
version=0.14.13
update_url="https://github.com/$name/$name/releases"
dlextract "https://github.com/$name/$name/releases/download/v$version/$name-source-v$version.tar.gz" \
'1181e6610d389c9abb67066beb049451'
'116ad104dc286d930a0e260efd6aed03'
extrafile 'syncthing-browser.desktop'
header_end
@ -13,16 +13,13 @@ cd "src/github.com/$name/$name"
GOPATH="$PWD/../../../../:$GOPATH" go run build.go -no-upgrade
rm -f bin/testutil
# Install program
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" bin/*
install -Dm755 -t "$dir_install/$dir_prefix/$dir_bindir" bin/syncthing
# Install manpages
for num in 1 5 7; do
for file in man/*.$num; do
install -Dm644 -t "$dir_install/$dir_prefix/$dir_mandir/man$num" "$file"
done
for file in man/syncthing.1 man/*.5 man/*.7; do
num="$(echo "$file" | cut -d '.' -f 2)"
install -Dm644 -t "$dir_install/$dir_prefix/$dir_mandir/man$num" "$file"
done
# Install desktop

4
satellites/teeworlds.sat

@ -1,11 +1,11 @@
# NOTE: This program includes external libraries in their source code: pnglite, wavpack and zlib. Due to how this program is built, it's hard to link with the system ones instead.
name=teeworlds
version=0.6.3
version=0.6.4
update_url='https://www.teeworlds.com/?page=downloads'
dlextract "https://downloads.teeworlds.com/$name-$version-src.tar.gz" \
'bbe9faa26caf796bcdffc4bc635118fd'
'9733800c12462ac4d5a5a4f6ea750af0'
extrafile "$name.desktop"
header_end

16
satellites/texmaker.sat

@ -0,0 +1,16 @@
# TODO: Qt5
import 'compile/qt'
name=texmaker
version=4.5
update_url="http://www.xm1math.net/$name/download.html"
dlextract "http://www.xm1math.net/$name/$name-$version.tar.bz2" \
'156ffad5b7193e0cfecd2d3689f3a7a4'
header_end
cd "$name-$version"
compile_qt 4
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/tilp-git.sat

@ -7,7 +7,7 @@ vcs_git 'https://github.com/debrouxl/tilp_and_gfm'
header_end
cd tilp_and_gfm/tilp/trunk
autoreconf -i
autoreconf -fi
compile_configure
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

114
satellites/virtualbox.sat

@ -0,0 +1,114 @@
# NOTE: This package uses a prebuilt BIOS image, that can only be properly built with OpenWatcom.
import 'vcs/svn'
name=VirtualBox
version=5.1.10
update_url='https://www.virtualbox.org/wiki/Downloads'
define_option 'pulseaudio: Add pulseaudio support'
define_option 'pam: Use PAM for authentication'
define_option 'docs: Build documentation (requires texlive)'
dlextract "http://download.virtualbox.org/virtualbox/$version/$name-$version.tar.bz2" \
'889d90a7d8119a6bcc699be258ca4a96'
dlfile 'https://git.archlinux.org/svntogit/community.git/plain/trunk/003-ogl-include-path.patch?h=packages/virtualbox&id=580e187e0eeb4952f8a5dd7f284962b714a88b34' \
'9e49bbaa2192b141c27ee43cef8cbab7'
# VirtualBox requires this specific revision of kBuild to build.
vcs_svn 'http://svn.netlabs.org/repos/kbuild/trunk' 2823
header_end
# Remove prebuilt binaries
rm -rf trunk/kBuild/bin "$name-$version/kBuild" "$name-$version/tools"
# Build kBuild
cd trunk
kBuild/env.sh --full make -f bootstrap.gmk
mv kBuild "../$name-$version"
# Build VirtualBox
cd "../$name-$version"
# Build with system X libraries
sed -i -e "/^+\t\/usr\/include/s/usr/$(safe_sed "$dir_prefix")/" ../003-ogl-include-path.patch
patch -p1 -i ../003-ogl-include-path.patch
# Qt5 requires -std=c++11
sed -i -e '/^CXX_FLAGS=/cCXX_FLAGS="-std=c++11"' configure
cat > LocalConfig.kmk << EOF
VBOX_GCC_OPT := $CXXFLAGS
VBOX_WITH_ORIGIN :=
VBOX_PATH_APP_PRIVATE := /$dir_prefix/$dir_datadir/$name
VBOX_PATH_APP_PRIVATE_ARCH := /$dir_prefix/$dir_libdir/$name
VBOX_PATH_SHARED_LIBS := \$(VBOX_PATH_APP_PRIVATE_ARCH)
VBOX_WITH_RUNPATH := \$(VBOX_PATH_APP_PRIVATE_ARCH)
VBOX_PATH_APP_DOCS := /$dir_prefix/$dir_docdir/$name
VBOX_PATH_PACKAGE_DOCS := \$(VBOX_PATH_APP_DOCS)
VBOX_WITH_TESTCASES :=
VBOX_WITH_TESTSUITE :=
VBOX_WITH_VALIDATIONKIT :=
VBOX_GCC_WERR :=
VBOX_GCC_WARN :=
VBOX_USE_SYSTEM_XORG_HEADERS := 1
VBOX_NO_LINUX_RUN_INSTALLER := 1
$(option pam || echo VBOX_WITH_PAM :=)
EOF
./configure \
--with-makeself=/bin/true \
--disable-kmods \
--disable-java \
--disable-extpack \
$(option pulseaudio || echo --disable-pulse) \
$(option docs || echo --disable-docs)
source ./env.sh
kmk LOCALCFG=./LocalConfig.kmk
# Install VirtualBox
cd "out/$BUILD_PLATFORM.$BUILD_PLATFORM_ARCH/release/bin"
rm -f *.debug
# binaries
mkdir -p "$dir_install/$dir_prefix/$dir_bindir"
for i in VBoxHeadless VBoxManage VBoxSDL VirtualBox VBoxBalloonCtrl VBoxBugReport VBoxDTrace vboxwebsrv; do
ln -sf "$dir_sysroot/$dir_prefix/$dir_libdir/$name/VBox.sh" "$dir_install/$dir_prefix/$dir_bindir/$i"
ln -sf "$dir_sysroot/$dir_prefix/$dir_libdir/$name/VBox.sh" "$dir_install/$dir_prefix/$dir_bindir/$(echo $i | tr '[:upper:]' '[:lower:]')"
done
chmod 4511 VBoxHeadless VBoxNetAdpCtl VBoxNetDHCP VBoxNetNAT VBoxSDL VBoxVolInfo VirtualBox
# icons
mkdir -p "$dir_install/$dir_prefix/$dir_datadir/pixmaps"
mv VBox.png "$dir_install/$dir_prefix/$dir_datadir/pixmaps"
for i in icons/*; do
mkdir -p "$dir_install/$dir_prefix/$dir_datadir/icons/hicolor/$(basename $i)/mimetypes"
mv $i/* "$dir_install/$dir_prefix/$dir_datadir/icons/hicolor/$(basename $i)/mimetypes"
done
rm -rf icons
# desktop
mkdir -p "$dir_install/$dir_prefix/$dir_datadir/applications" "$dir_install/$dir_prefix/$dir_datadir/mime/packages"
mv virtualbox.desktop "$dir_install/$dir_prefix/$dir_datadir/applications"
mv virtualbox.xml "$dir_install/$dir_prefix/$dir_datadir/mime/packages"
# install configuration
mkdir -p "$dir_install/$dir_sysconfdir/vbox"
echo "INSTALL_DIR='$dir_sysroot/$dir_prefix/$dir_libdir/$name'" > "$dir_install/$dir_sysconfdir/vbox/vbox.cfg"
# Fix the kernel source directory
mkdir vboxhost
mv src/* vboxhost
mv vboxhost src
# Move the directory
mkdir -p "$dir_install/$dir_prefix/$dir_libdir/$name"
cp -a * "$dir_install/$dir_prefix/$dir_libdir/$name"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

2
satellites/volumeicon.sat

@ -21,7 +21,7 @@ sed -i -e 's/-DCOMPILEWITH_NOTIFY/ &/' ./configure
if option !gtk3; then
patch -p2 -i ../gtk2.patch
autoreconf -i
autoreconf -fi
fi
compile_configure -- --enable-notify

5
satellites/waf.sat

@ -1,11 +1,11 @@
import 'compile/waf'
name=waf
version=1.9.5
version=1.9.6
update_url='https://waf.io/'
dlextract "https://waf.io/$name-$version.tar.bz2" \
'9e750c49f002b1ba1effa75ec9bbdf00'
'2b348ccad11623dcc1a177c56ab40836'
header_end
cd "$name-$version"
@ -33,5 +33,6 @@ wafdir="$dir_install/$dir_prefix/$dir_libdir/${name}3-$version"
install -d "$wafdir"
unzip -od "$wafdir" zip/waflib.zip
python3 -OOm compileall "$wafdir"
chmod -R a+r "$wafdir"
# vim:set tabstop=4 shiftwidth=4 syntax=sh expandtab:

8
satellites/wine.sat

@ -1,15 +1,17 @@
# TODO: Build wine gecko and mono.
import 'compile/configure'
name=wine
majver=1.9
version=$majver.22
version=$majver.24
update_url='https://www.winehq.org/'
update_names="/announce/$version\""
define_option 'wine32=: On x86_64, enable 32bit wine support. Specify the 32bit libdir here'
dlextract "http://dl.winehq.org/$name/source/$majver/$name-$version.tar.bz2" \
'604c64eb3e1e5c85bc467e5e7b251b1d'
'6c225b7f41f6ce7ca9acf019c45c9258'
header_end
cd "$name-$version"
@ -17,7 +19,7 @@ cd "$name-$version"
compile_configure -b ../build -- $([ "$(uname -m)" = 'x86_64' ] && echo --enable-win64)
wine32="$(option =wine32)"
if [ "$wine32" ]; then
if [ "$(uname -m)" = 'x86_64' -a "$wine32" ]; then
PKG_CONFIG_PATH="$dir_sysroot/$dir_prefix/$wine32/pkgconfig" compile_configure -b ../build-wine32 -- --with-wine64=../build --libdir="/$dir_prefix/$wine32"
fi

4
satellites/xcb-util-xrm.sat

@ -1,11 +1,11 @@
import 'compile/configure'
name=xcb-util-xrm
version=1.0
version=1.2
update_url="https://github.com/Airblader/$name/releases"
dlextract "https://github.com/Airblader/$name/releases/download/v$version/$name-$version.tar.bz2" \
'31b5074f47d8072a81d2ffd1dae3ad57'
'242dfd4af757fc5ca0e952a714b9606a'
header_end
cd "$name-$version"

4
satellites/youtube-dl.sat

@ -1,11 +1,11 @@
import 'compile/python'
name=youtube-dl
version=2016.11.04
version=2016.12.01
update_url="http://rg3.github.io/$name/download.html"
dlextract "https://yt-dl.org/downloads/$version/$name-$version.tar.gz" \
'3d9178a9f9278f24cb313e90c8ef5be3'
'53137910c4e55b631b8be30e1c0f32a8'
header_end
cd "$name"

2
todo.txt

@ -0,0 +1,2 @@
Remove the need for dir_sysroot, using it as an option only in the strictly required packages.
Update the vcs and compile functions to support better options.
Loading…
Cancel
Save