Skip to content
33 changes: 33 additions & 0 deletions projects/emersion.fr/libdisplay-info/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
distributable:
# returns 403
# url: https://gitlab.freedesktop.org/emersion/libdisplay-info/-/releases/{{version}}/downloads/libdisplay-info-{{version}}.tar.xz
# strip-components: 1
url: git+https://gitlab.freedesktop.org/emersion/libdisplay-info
ref: ${{version}}

display-name: libdisplay-info

versions:
gitlab: gitlab.freedesktop.org:emersion/libdisplay-info

build:
dependencies:
github.com/vcrhonek/hwdata: '*'
mesonbuild.com: '>=0.57'
ninja-build.org: '>=1.8.2'
script: |
meson setup build $ARGS
meson compile -C build --jobs {{ hw.concurrency }}
meson install -C build
env:
ARGS:
- --buildtype=release
- --prefix={{prefix}}
- --libdir=lib

provides:
- bin/di-edid-decode

test: |
wget https://gitlab.freedesktop.org/emersion/libdisplay-info/-/raw/main/test/data/cvt.edid
di-edid-decode cvt.edid
59 changes: 59 additions & 0 deletions projects/freedesktop.org/colord/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
distributable:
url: https://www.freedesktop.org/software/colord/releases/colord-{{version}}.tar.xz
strip-components: 1

display-name: colord

versions:
github: hughsie/colord/tags

dependencies:
gnome.org/glib: '>=2.58'
gnome.org/libgudev: '*'
hughsie.com/libgusb: '>=0.2.7'
littlecms.com: '>=2.6'
sqlite.org: '>=3'
systemd.io: '*'

# companions:
# debian.org/bash-completion: '>=2'

build:
dependencies:
gnome.org/gobject-introspection: '*'
gnome.org/libxslt: '*'
gnome.org/vala: '*'
mesonbuild.com: '>=0.52'
ninja-build.org: '>=1.8.2'
script:
- patch -p1 < props/relocatable.patch
- meson setup build $ARGS
- meson compile -C build --jobs {{ hw.concurrency }}
- meson install -C build
- run: glib-compile-schemas .
working-directory: ${{prefix}}/share/glib-2.0/schemas
env:
ARGS:
- --buildtype=release
- --prefix={{prefix}}
- --libdir=lib
- -Dlibcolordcompat=true
- -Dargyllcms_sensor=false
- -Dvapi=true
- -Ddaemon=false
- -Dtests=false
- -Ddocs=false
- -Dman=false
- -Dbash_completion=false

provides:
- bin/cd-create-profile
- bin/cd-fix-profile
- bin/cd-iccdump
- bin/cd-it8
- bin/colormgr

test:
# I can't get dbus-daemon to work, so this is the next best thing
- run: './colord-session --verbose | grep "CdMain: lost name: org.freedesktop.ColorHelper"'
working-directory: ${{prefix}}/libexec
118 changes: 118 additions & 0 deletions projects/freedesktop.org/colord/relocatable.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
diff --git a/contrib/session-helper/cd-main.c b/contrib/session-helper/cd-main.c
index 025b127..7d8ff73 100644
--- a/contrib/session-helper/cd-main.c
+++ b/contrib/session-helper/cd-main.c
@@ -66,7 +66,7 @@ typedef struct {
CdProfileQuality quality;
GCancellable *cancellable;
gchar *title;
- gchar *basename;
+ gchar *cd_main_private_basename;
gchar *working_path;
} CdMainPrivate;

@@ -800,6 +800,26 @@ cd_main_finished_quit_cb (gpointer user_data)
return G_SOURCE_REMOVE;
}

+#include <limits.h>
+#include <unistd.h>
+#include <libgen.h>
+#include <stdio.h>
+#include <string.h>
+
+char *get_prefix(char *suffix) {
+ char path[PATH_MAX], prefix[PATH_MAX];
+ int rv = readlink("/proc/self/exe", path, sizeof(path));
+ if (rv != -1) {
+ sprintf(prefix, "%s/%s/", dirname(dirname(path)), suffix);
+ return strdup(prefix);
+ } else {
+ return NULL;
+ }
+}
+
+#undef DATADIR
+#define DATADIR get_prefix("share")
+
static gboolean
cd_main_load_samples (CdMainPrivate *priv, GError **error)
{
@@ -848,7 +868,7 @@ cd_main_write_colprof_files (CdMainPrivate *priv, GError **error)
if (!ret)
return FALSE;
data = g_strdup_printf ("%s\n%s", data_ti3, data_cal);
- filename_ti3 = g_strdup_printf ("%s.ti3", priv->basename);
+ filename_ti3 = g_strdup_printf ("%s.ti3", priv->cd_main_private_basename);
path_ti3 = g_build_filename (priv->working_path,
filename_ti3,
NULL);
@@ -909,7 +929,7 @@ cd_main_import_profile (CdMainPrivate *priv, GError **error)
g_autofree gchar *path = NULL;
g_autoptr(GFile) file = NULL;

- filename = g_strdup_printf ("%s.icc", priv->basename);
+ filename = g_strdup_printf ("%s.icc", priv->cd_main_private_basename);
path = g_build_filename (priv->working_path,
filename,
NULL);
@@ -959,7 +979,7 @@ cd_main_set_profile_metadata (CdMainPrivate *priv, GError **error)
g_autoptr(GFile) file = NULL;

/* get profile */
- profile_fn = g_strdup_printf ("%s.icc", priv->basename);
+ profile_fn = g_strdup_printf ("%s.icc", priv->cd_main_private_basename);
profile_path = g_build_filename (priv->working_path,
profile_fn,
NULL);
@@ -1052,7 +1072,7 @@ cd_main_generate_profile (CdMainPrivate *priv, GError **error)
g_ptr_array_add (array, g_strdup_printf ("-C%s", CD_PROFILE_DEFAULT_COPYRIGHT_STRING));
g_ptr_array_add (array, g_strdup (cd_main_get_colprof_quality_arg (priv->quality)));
g_ptr_array_add (array, g_strdup ("-aG"));
- g_ptr_array_add (array, g_strdup (priv->basename));
+ g_ptr_array_add (array, g_strdup (priv->cd_main_private_basename));
g_ptr_array_add (array, NULL);

/* run the command */
@@ -1493,7 +1513,7 @@ cd_main_set_basename (CdMainPrivate *priv)

/* make suitable filename */
g_strdelimit (str->str, "/\"*?", '_');
- priv->basename = g_string_free (str, FALSE);
+ priv->cd_main_private_basename = g_string_free (str, FALSE);
}

static gboolean
@@ -1838,6 +1858,12 @@ cd_main_percentage_changed_cb (CdState *state,
g_variant_new_uint32 (value));
}

+char *concat(char *string1, char *string2) {
+ char concat_string[strlen(string1) + strlen(string2)];
+ sprintf(concat_string, "%s%s", string1, string2);
+ return strdup(concat_string);
+}
+
int
main (int argc, char *argv[])
{
@@ -1887,8 +1913,8 @@ main (int argc, char *argv[])
g_option_context_free (context);

/* load introspection from file */
- priv->introspection = cd_main_load_introspection (DATADIR "/dbus-1/interfaces/"
- CD_SESSION_DBUS_INTERFACE ".xml",
+ priv->introspection = cd_main_load_introspection (concat(DATADIR, "/dbus-1/interfaces/"
+ CD_SESSION_DBUS_INTERFACE ".xml"),
&error);
if (priv->introspection == NULL) {
g_warning ("CdMain: failed to load introspection: %s",
@@ -1955,7 +1981,7 @@ out:
if (priv->state != NULL)
g_object_unref (priv->state);
g_free (priv->working_path);
- g_free (priv->basename);
+ g_free (priv->cd_main_private_basename);
g_free (priv->title);
g_free (priv);
return retval;
17 changes: 17 additions & 0 deletions projects/github.com/vcrhonek/hwdata/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
distributable:
url: https://github.com/vcrhonek/hwdata/archive/refs/tags/v{{version.marketing}}.tar.gz
strip-components: 1

display-name: hwdata

versions:
github: vcrhonek/hwdata

build:
script: |
./configure $ARGS
make --jobs {{ hw.concurrency }} install
env:
ARGS: --prefix={{prefix}}

test: test $(pkg-config --modversion hwdata) = {{version.marketing}}
49 changes: 49 additions & 0 deletions projects/gjs.guide/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
distributable:
url: https://download.gnome.org/sources/gjs/{{version.marketing}}/gjs-{{version}}.tar.xz
strip-components: 1

display-name: gjs

versions:
gitlab: gitlab.gnome.org:GNOME/gjs

dependencies:
cairographics.org: '*'
gnome.org/glib: '>=2.86.0'
gnu.org/readline: '*'
sourceware.org/libffi: '*'
spidermonkey.dev: 140

build:
dependencies:
gnome.org/gobject-introspection: '*'
mesonbuild.com: '>=1.4'
ninja-build.org: '>=1.8.2'
script: |
meson setup build $ARGS
meson compile -C build --jobs {{ hw.concurrency }}
meson install -C build
env:
ARGS:
--buildtype=release
--prefix={{prefix}}
--libdir=lib
-Dinstalled_tests=false
-Dskip_dbus_tests=true
-Dskip_gtk_tests=true
-Dprofiler=disabled

provides:
- bin/gjs
- bin/gjs-console

test:
script:
- run: gjs-console $FIXTURE
fixture:
extname: js
content: |
const GLib = imports.gi.GLib;
print(new GLib.String("Hello, world!").str);
env:
GI_TYPELIB_PATH: ${{deps.gnome.org/glib.prefix}}/lib/girepository-1.0
53 changes: 53 additions & 0 deletions projects/gnome.org/desktop/package.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
distributable:
url: https://download.gnome.org/sources/gnome-desktop/{{version.major}}/gnome-desktop-{{version.marketing}}.tar.xz
strip-components: 1

display-name: gnome-desktop

versions:
gitlab: gitlab.gnome.org:GNOME/gnome-desktop

dependencies:
debian.org/iso-codes: '*'
freedesktop.org/fontconfig: '*'
freedesktop.org/XKeyboardConfig: '*'
gnome.org/gdk-pixbuf: '>=2.36.5'
gnome.org/glib: '>=2.53'
gnome.org/gsettings-desktop-schemas: '>=3.27'
gtk.org/gtk3: '>=3.3.6'
gtk.org/gtk4: '>=4.4'
systemd.io: '*'
xkbcommon.org: '*'
linux:
github.com/seccomp/libseccomp: '*'

build:
dependencies:
gnome.org/gobject-introspection: '*'
itstool.org: '*'
mesonbuild.com: '>=0.56.2'
ninja-build.org: '>=1.8.2'
script: |
meson setup build $ARGS
meson compile -C build --jobs {{ hw.concurrency }}
meson install -C build
env:
ARGS:
--buildtype=release
--prefix={{prefix}}
--libdir=lib
-Ddebug_tools=false

test:
- run: cc $FIXTURE -lgnome-desktop-4
fixture:
extname: c
contents: |
#include <gnome-desktop-4.0/libgnome-desktop/gnome-desktop-version.h>
#include <stdio.h>

int main() {
printf("%d", gnome_get_platform_version());
return 0;
}
- test $(./a.out) = {{version.major}}
Loading
Loading