diff --git a/helpers/DATA/cron/license-info-fix.patch b/helpers/DATA/cron/license-info-fix.patch deleted file mode 100644 index b6221bd..0000000 --- a/helpers/DATA/cron/license-info-fix.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/debian/copyright b/debian/copyright -index 3c8824f..c6ec81a 100644 ---- a/debian/copyright -+++ b/debian/copyright -@@ -38,7 +38,7 @@ License: GPL-2+ - - Files: debian/examples/crontab2english.pl - Copyright: 2001, Sean M. Burke --License: Artistic -+License: GPL-1+ or Artistic - - License: Paul-Vixie's-license - Distribute freely, except: don't remove my name from the source or -@@ -67,6 +67,23 @@ License: GPL-2+ - On Debian systems, the complete text of the GNU General - Public License version 2 can be found in "/usr/share/common-licenses/GPL-2". - -+License: GPL-1+ -+ This package is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 1 of the License, or -+ (at your option) any later version. -+ . -+ This package is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ . -+ You should have received a copy of the GNU General Public License -+ along with this program. If not, see -+ . -+ On Debian systems, the complete text of the GNU General -+ Public License version 1 can be found in "/usr/share/common-licenses/GPL-1". -+ - License: Artistic - This program is free software; you can redistribute it and/or modify it - under the terms of the "Artistic License" which comes with Debian. diff --git a/helpers/DATA/dia/patch_changes/000-apply_current_dia_mr_114.patch b/helpers/DATA/dia/patch_changes/000-apply_current_dia_mr_114.patch deleted file mode 100644 index 80b30cf..0000000 --- a/helpers/DATA/dia/patch_changes/000-apply_current_dia_mr_114.patch +++ /dev/null @@ -1,1324 +0,0 @@ -From 6d7a3b627566ff2201292a45ed35a5ab3e425c13 Mon Sep 17 00:00:00 2001 -From: Duncan McIntosh -Date: Sun, 15 Oct 2023 22:26:17 -0400 -Subject: [PATCH 1/4] objects: disable Tab in multi-line entry widgets - -This becomes a 'black hole' for focus, making it hard to navigate by -keyboard. This is both annoying, and also an accessibility problem. ---- - lib/prop_text.c | 1 + - objects/UML/class_attributes_dialog.c | 1 + - objects/UML/class_dialog.c | 1 + - objects/UML/class_operations_dialog.c | 2 ++ - 4 files changed, 5 insertions(+) - -diff --git a/lib/prop_text.c b/lib/prop_text.c -index 4ff98f60d..8e1e9fcf7 100644 ---- a/lib/prop_text.c -+++ b/lib/prop_text.c -@@ -125,6 +125,7 @@ multistringprop_get_widget(StringProperty *prop, PropDialog *dialog) - GtkWidget *ret = gtk_text_view_new(); - GtkTextBuffer *buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(ret)); - GtkWidget *frame = gtk_frame_new(NULL); -+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (ret), FALSE); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_container_add(GTK_CONTAINER(frame), ret); - g_signal_connect(G_OBJECT(ret), "key-release-event", -diff --git a/objects/UML/class_attributes_dialog.c b/objects/UML/class_attributes_dialog.c -index 2722a2a03..085624e31 100644 ---- a/objects/UML/class_attributes_dialog.c -+++ b/objects/UML/class_attributes_dialog.c -@@ -729,6 +729,7 @@ _attributes_create_page (GtkNotebook *notebook, UMLClass *umlclass) - gtk_container_add (GTK_CONTAINER (scrolledwindow), entry); - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_WORD); - gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (entry), TRUE); -+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE); - gtk_widget_show (entry); - #if 0 /* while the GtkEntry has a "activate" signal, GtkTextView does not. - * Maybe we should connect to "set-focus-child" instead? -diff --git a/objects/UML/class_dialog.c b/objects/UML/class_dialog.c -index 8867ae9ac..163cc2949 100644 ---- a/objects/UML/class_dialog.c -+++ b/objects/UML/class_dialog.c -@@ -382,6 +382,7 @@ class_create_page(GtkNotebook *notebook, UMLClass *umlclass) - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), - GTK_SHADOW_IN); - entry = gtk_text_view_new (); -+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE); - prop_dialog->comment = GTK_TEXT_VIEW(entry); - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_WORD); - -diff --git a/objects/UML/class_operations_dialog.c b/objects/UML/class_operations_dialog.c -index a530337a9..936a8b575 100644 ---- a/objects/UML/class_operations_dialog.c -+++ b/objects/UML/class_operations_dialog.c -@@ -982,6 +982,7 @@ operations_data_create_hbox (UMLClass *umlclass) - gtk_container_add (GTK_CONTAINER (scrolledwindow), entry); - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_WORD); - gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (entry),TRUE); -+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE); - - - gtk_grid_attach (GTK_GRID (grid), label, 4, 0, 1, 1); -@@ -1340,6 +1341,7 @@ operations_parameters_data_create_vbox (UMLClass *umlclass) - gtk_container_add (GTK_CONTAINER (scrolledwindow), entry); - gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_WORD); - gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (entry),TRUE); -+ gtk_text_view_set_accepts_tab (GTK_TEXT_VIEW (entry), FALSE); - - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_grid_attach (GTK_GRID (grid), label, 2, 1, 1, 1); --- -GitLab - - -From b5dc904ed58ea026898fbc7bf6940de97a6e4e15 Mon Sep 17 00:00:00 2001 -From: Duncan McIntosh -Date: Mon, 16 Oct 2023 15:34:23 -0400 -Subject: [PATCH 2/4] font: don't store the height internally - -We now solely rely on the PangoFontDescription, which is more flexible and -less prone to mistakes. ---- - lib/font.c | 85 ++++++++++++++++++++++---------------------------- - lib/font.h | 2 ++ - lib/libdia.def | 1 + - 3 files changed, 41 insertions(+), 47 deletions(-) - -diff --git a/lib/font.c b/lib/font.c -index 1a321c462..6dec80bb1 100644 ---- a/lib/font.c -+++ b/lib/font.c -@@ -39,6 +39,7 @@ - #include "font.h" - #include "message.h" - #include "textline.h" -+#include "units.h" - - static PangoContext *pango_context = NULL; - -@@ -53,13 +54,6 @@ struct _DiaFont { - PangoFontDescription *pfd; - /* mutable */ char *legacy_name; - -- /* there is a difference between Pango's font size and Dia's font height */ -- /* Calculated font_size is to make 'font_height = ascent + descent */ -- /* The font_height is used as default line height, there used to be a hard-coded size = 0.7 * height */ -- /* before using pango_set_absolute_size() to overcome font size differences between renderers */ -- double height; -- /* Need to load a font to query it's metrics */ -- PangoFont *loaded; - PangoFontMetrics *metrics; - }; - -@@ -136,8 +130,6 @@ dia_font_finalize (GObject *object) - g_clear_pointer (&font->pfd, pango_font_description_free); - g_clear_pointer (&font->metrics, pango_font_metrics_unref); - -- g_clear_object (&font->loaded); -- - G_OBJECT_CLASS (dia_font_parent_class)->finalize (object); - } - -@@ -166,33 +158,17 @@ dia_pfd_set_height(PangoFontDescription *pfd, double height) - } - - --/*! -- * In Dia a font is usually referred to by it's (line-) height, not it's size. -- * -- * This methods "calculates" the latter from the former. This used to be some magic factor of 0.7 which did not -- * solve the resolution dependencance of the former calculation. In fact there is new magic factor now because -- * really calculating the font size from the height would involve two font loads which seem to be two expensive. -- */ - static void --_dia_font_adjust_size (DiaFont *font, double height, gboolean recalc_alwways) -+dia_font_update_metrics (DiaFont *font) - { -+ PangoFont *loaded; - -- if (font->height != height || !font->metrics || recalc_alwways) { -- PangoFont *loaded; -- -- dia_pfd_set_height (font->pfd, height); -- /* need to load a font to get it's metrics */ -- loaded = font->loaded; -- font->loaded = pango_context_load_font (dia_font_get_context (), font->pfd); -- -- g_clear_object (&loaded); -- -- g_clear_pointer (&font->metrics, pango_font_metrics_unref); -+ g_clear_pointer (&font->metrics, pango_font_metrics_unref); - -- /* caching metrics */ -- font->metrics = pango_font_get_metrics (font->loaded, NULL); -- font->height = height; -- } -+ /* need to load a font to get its metrics */ -+ loaded = pango_context_load_font (dia_font_get_context (), font->pfd); -+ font->metrics = pango_font_get_metrics (loaded, NULL); -+ g_clear_object (&loaded); - } - - -@@ -205,15 +181,8 @@ DiaFont * - dia_font_new (const char *family, DiaFontStyle style, double height) - { - DiaFont* font = dia_font_new_from_style(style, height); -- gboolean changed; -- -- changed = family != NULL && g_strcmp0 (pango_font_description_get_family (font->pfd), family) != 0; - pango_font_description_set_family(font->pfd, family); - -- if (changed) { -- _dia_font_adjust_size (font, font->height, TRUE); -- } -- - return font; - } - -@@ -316,9 +285,10 @@ dia_font_new_from_style (DiaFontStyle style, double height) - - retval = g_object_new (DIA_TYPE_FONT, NULL); - retval->pfd = pfd; -- _dia_font_adjust_size (retval, height, FALSE); - retval->legacy_name = NULL; - -+ dia_font_update_metrics (retval); -+ - return retval; - } - -@@ -407,8 +377,9 @@ double - dia_font_get_height (DiaFont *font) - { - g_return_val_if_fail (font != NULL, 0.0); -+ g_return_val_if_fail (pango_font_description_get_size_is_absolute (font->pfd), 0.0); - -- return font->height; -+ return pdu_to_dcm(pango_font_description_get_size(font->pfd)) / 0.8; - } - - -@@ -430,6 +401,23 @@ dia_font_get_size (DiaFont *font) - } - - -+/** -+ * dia_font_set_size: -+ * @font: The font to modify. -+ * @size: The new size in centimetres. -+ * -+ * Sets the size of font to the provided (positive) size. -+ */ -+void -+dia_font_set_size (DiaFont *font, double size) -+{ -+ g_return_if_fail (size >= 0); -+ -+ pango_font_description_set_absolute_size (font->pfd, dcm_to_pdu (size)); -+ dia_font_update_metrics (font); -+} -+ -+ - /** - * dia_font_set_height: - * -@@ -438,7 +426,8 @@ dia_font_get_size (DiaFont *font) - void - dia_font_set_height (DiaFont* font, double height) - { -- _dia_font_adjust_size (font, height, FALSE); -+ /* FIXME For now, assume height is 80% of size. */ -+ dia_font_set_size (font, height / 0.8); - } - - -@@ -493,7 +482,7 @@ dia_font_set_any_family (DiaFont *font, const char *family) - pango_font_description_set_family (font->pfd, family); - if (changed) { - /* force recalculation on name change */ -- _dia_font_adjust_size (font, font->height, TRUE); -+ dia_font_update_metrics (font); - } - - g_clear_pointer (&font->legacy_name, g_free); -@@ -531,7 +520,7 @@ dia_font_set_weight (DiaFont *font, DiaFontWeight weight) - dia_pfd_set_weight(font->pfd,weight); - - if (old_weight != weight) { -- _dia_font_adjust_size (font, font->height, TRUE); -+ dia_font_update_metrics (font); - } - } - -@@ -548,7 +537,7 @@ dia_font_set_slant (DiaFont *font, DiaFontSlant slant) - g_return_if_fail(font != NULL); - dia_pfd_set_slant(font->pfd,slant); - if (slant != old_slant) -- _dia_font_adjust_size (font, font->height, TRUE); -+ dia_font_update_metrics (font); - } - - -@@ -702,7 +691,8 @@ dia_font_ascent (const char *string, DiaFont *font, double height) - { - if (font->metrics) { - double ascent = pdu_to_dcm (pango_font_metrics_get_ascent (font->metrics)); -- return ascent * (height / font->height); -+ double factor = height / dia_font_get_height (font); -+ return ascent * factor; - } else { - /* previous, _expensive_ but string specific way */ - TextLine *text_line = text_line_new (string, font, height); -@@ -723,7 +713,8 @@ dia_font_descent (const char *string, DiaFont *font, double height) - { - if (font->metrics) { - double descent = pdu_to_dcm (pango_font_metrics_get_descent (font->metrics)); -- return descent * (height / font->height); -+ double factor = height / dia_font_get_height (font); -+ return descent * factor; - } else { - /* previous, _expensive_ but string specific way */ - TextLine *text_line = text_line_new (string, font, height); -diff --git a/lib/font.h b/lib/font.h -index aaf19ef6d..bd6868cb3 100644 ---- a/lib/font.h -+++ b/lib/font.h -@@ -103,6 +103,8 @@ const PangoFontDescription *dia_font_get_description (DiaFont *f - double dia_font_get_height (DiaFont *font); - void dia_font_set_height (DiaFont *font, - double height); -+void dia_font_set_size (DiaFont *font, -+ double size); - double dia_font_get_size (DiaFont *font); - void dia_font_set_slant (DiaFont *font, - DiaFontSlant slant); -diff --git a/lib/libdia.def b/lib/libdia.def -index d7f579479..1218a20c9 100644 ---- a/lib/libdia.def -+++ b/lib/libdia.def -@@ -243,6 +243,7 @@ EXPORTS - dia_font_new_from_style - dia_font_set_any_family - dia_font_set_height -+ dia_font_set_size - dia_font_set_slant - dia_font_set_slant_from_string - dia_font_set_weight --- -GitLab - - -From da5b8963d3bd8f80a50b3bf81ec5d7a59bdbe8a7 Mon Sep 17 00:00:00 2001 -From: Duncan McIntosh -Date: Fri, 20 Oct 2023 17:29:48 -0400 -Subject: [PATCH 3/4] font: add dia_font_new_from_description - -Since we no longer need to keep track of font heights in DiaFont, it -basically wraps descriptions. As such, allow creating fonts from a -string Pango description. - -This uses a string to try and avoid a public dependency on Pango. We -still have public dependencies elsewhere, but it means shifting to -alternative libraries, or incompatible versions (like Pango2, which -appears at least on hold) should be easier. It also doesn't really -add much friction with GTK. ---- - lib/font.c | 21 +++++++++++++++++++++ - lib/font.h | 1 + - lib/libdia.def | 1 + - 3 files changed, 23 insertions(+) - -diff --git a/lib/font.c b/lib/font.c -index 6dec80bb1..ca3953f28 100644 ---- a/lib/font.c -+++ b/lib/font.c -@@ -293,6 +293,27 @@ dia_font_new_from_style (DiaFontStyle style, double height) - } - - -+DiaFont * -+dia_font_new_from_description (const char *desc) -+{ -+ DiaFont *retval; -+ PangoFontDescription *pfd = pango_font_description_from_string (desc); -+ -+ if (!pango_font_description_get_size_is_absolute (pfd)) { -+ double size = pango_font_description_get_size (pfd); -+ pango_font_description_set_absolute_size(pfd, size * global_zoom_factor * 72.0); -+ } -+ -+ retval = g_object_new (DIA_TYPE_FONT, NULL); -+ retval->pfd = pfd; -+ retval->legacy_name = NULL; -+ -+ dia_font_update_metrics (retval); -+ -+ return retval; -+} -+ -+ - DiaFont * - dia_font_copy (DiaFont *font) - { -diff --git a/lib/font.h b/lib/font.h -index bd6868cb3..cc1260815 100644 ---- a/lib/font.h -+++ b/lib/font.h -@@ -95,6 +95,7 @@ DiaFont *dia_font_new (const char *f - DiaFont *dia_font_new_from_style (DiaFontStyle style, - double height); - DiaFont *dia_font_new_from_legacy_name (const char *name); -+DiaFont *dia_font_new_from_description (const char *description); - const char *dia_font_get_legacy_name (DiaFont *font); - DiaFont *dia_font_copy (DiaFont *font); - DiaFontStyle dia_font_get_style (DiaFont *font); -diff --git a/lib/libdia.def b/lib/libdia.def -index 1218a20c9..db1c4ad7a 100644 ---- a/lib/libdia.def -+++ b/lib/libdia.def -@@ -241,6 +241,7 @@ EXPORTS - dia_font_new - dia_font_new_from_legacy_name - dia_font_new_from_style -+ dia_font_new_from_description - dia_font_set_any_family - dia_font_set_height - dia_font_set_size --- -GitLab - - -From 48c9b9b81d347d3f3c6df4df9c7456f2b74919c8 Mon Sep 17 00:00:00 2001 -From: Duncan McIntosh -Date: Fri, 20 Oct 2023 17:31:58 -0400 -Subject: [PATCH 4/4] lib: remove DiaFontSelector - -We can now use GtkFontButton, which (a) allows removing ~700 lines of code, -and (b) doesn't lock up whenever a property dialog is opened. - -Currently, we don't allow configuring size in the dialog, since the size -of a DiaFont isn't really used. Further refactoring should let us use it -instead of separate spin buttons. ---- - lib/dia-font-selector.c | 646 ------------------------------------- - lib/dia-font-selector.h | 37 --- - lib/libdia.def | 5 - - lib/meson.build | 2 - - lib/prop_attr.c | 17 +- - objects/UML/class_dialog.c | 54 +++- - objects/UML/class_dialog.h | 13 +- - 7 files changed, 56 insertions(+), 718 deletions(-) - delete mode 100644 lib/dia-font-selector.c - delete mode 100644 lib/dia-font-selector.h - -diff --git a/lib/dia-font-selector.c b/lib/dia-font-selector.c -deleted file mode 100644 -index fb59d6c98..000000000 ---- a/lib/dia-font-selector.c -+++ /dev/null -@@ -1,646 +0,0 @@ --/* Dia -- an diagram creation/manipulation program -- * Copyright (C) 1998 Alexander Larsson -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- */ -- --#include "config.h" -- --#include --#include -- --#include --#include -- --#include "dia-font-selector.h" --#include "font.h" --#include "persistence.h" -- --#define PERSIST_NAME "font-menu" -- --struct _DiaFontSelector { -- GtkBox hbox; --}; -- -- --typedef struct _DiaFontSelectorPrivate DiaFontSelectorPrivate; --struct _DiaFontSelectorPrivate { -- GtkWidget *fonts; -- GtkTreeStore *fonts_store; -- GtkTreeIter fonts_default_end; -- GtkTreeIter fonts_custom_end; -- GtkTreeIter fonts_other; -- GtkTreeIter fonts_reset; -- -- const char *looking_for; -- -- GtkWidget *styles; -- GtkListStore *styles_store; -- -- char *current; -- int current_style; --}; -- --G_DEFINE_TYPE_WITH_PRIVATE (DiaFontSelector, dia_font_selector, GTK_TYPE_BOX) -- --enum { -- VALUE_CHANGED, -- LAST_SIGNAL --}; -- --static guint signals[LAST_SIGNAL] = { 0 }; -- -- --/* New and improved font selector: Contains the three standard fonts -- * and an 'Other fonts...' entry that opens the font dialog. The fonts -- * selected in the font dialog are persistently added to the menu. -- * -- * +----------------+ -- * | Sans | -- * | Serif | -- * | Monospace | -- * | -------------- | -- * | Bodini | -- * | CurlyGothic | -- * | OldWestern | -- * | -------------- | -- * | Other fonts... | -- * +----------------+ -- */ -- --enum { -- STYLE_COL_LABEL, -- STYLE_COL_ID, -- STYLE_N_COL, --}; -- -- --enum { -- FONT_COL_FAMILY, -- FONT_N_COL, --}; -- -- --static void --dia_font_selector_finalize (GObject *object) --{ -- DiaFontSelector *self = DIA_FONT_SELECTOR (object); -- DiaFontSelectorPrivate *priv = dia_font_selector_get_instance_private (self); -- -- g_clear_object (&priv->fonts_store); -- g_clear_object (&priv->styles_store); -- -- g_clear_pointer (&priv->current, g_free); -- -- G_OBJECT_CLASS (dia_font_selector_parent_class)->finalize (object); --} -- -- --static void --dia_font_selector_class_init (DiaFontSelectorClass *klass) --{ -- GObjectClass *object_class = G_OBJECT_CLASS (klass); -- -- object_class->finalize = dia_font_selector_finalize; -- -- signals[VALUE_CHANGED] = g_signal_new ("value-changed", -- G_TYPE_FROM_CLASS (klass), -- G_SIGNAL_RUN_FIRST, -- 0, NULL, NULL, -- g_cclosure_marshal_VOID__VOID, -- G_TYPE_NONE, 0); --} -- -- --static int --sort_fonts (const void *p1, const void *p2) --{ -- const gchar *n1 = pango_font_family_get_name (PANGO_FONT_FAMILY (*(void**)p1)); -- const gchar *n2 = pango_font_family_get_name (PANGO_FONT_FAMILY (*(void**)p2)); -- return g_ascii_strcasecmp (n1, n2); --} -- -- --static char *style_labels[] = { -- "Normal", -- "Oblique", -- "Italic", -- "Ultralight", -- "Ultralight-Oblique", -- "Ultralight-Italic", -- "Light", -- "Light-Oblique", -- "Light-Italic", -- "Medium", -- "Medium-Oblique", -- "Medium-Italic", -- "Demibold", -- "Demibold-Oblique", -- "Demibold-Italic", -- "Bold", -- "Bold-Oblique", -- "Bold-Italic", -- "Ultrabold", -- "Ultrabold-Oblique", -- "Ultrabold-Italic", -- "Heavy", -- "Heavy-Oblique", -- "Heavy-Italic" --}; -- -- --static PangoFontFamily * --get_family_from_name (GtkWidget *widget, const gchar *fontname) --{ -- PangoFontFamily **families; -- int n_families, i; -- -- pango_context_list_families (dia_font_get_context(), -- &families, &n_families); -- /* Doing it the slow way until I find a better way */ -- for (i = 0; i < n_families; i++) { -- if (!(g_ascii_strcasecmp (pango_font_family_get_name (families[i]), fontname))) { -- PangoFontFamily *fam = families[i]; -- g_clear_pointer (&families, g_free); -- return fam; -- } -- } -- g_warning (_("Couldn't find font family for %s\n"), fontname); -- g_clear_pointer (&families, g_free); -- return NULL; --} -- -- --static void --set_styles (DiaFontSelector *fs, -- const gchar *name, -- DiaFontStyle dia_style) --{ -- PangoFontFamily *pff; -- DiaFontSelectorPrivate *priv; -- PangoFontFace **faces = NULL; -- int nfaces = 0; -- int i = 0; -- long stylebits = 0; -- -- g_return_if_fail (DIA_IS_FONT_SELECTOR (fs)); -- -- priv = dia_font_selector_get_instance_private (fs); -- -- pff = get_family_from_name (GTK_WIDGET (fs), name); -- -- pango_font_family_list_faces (pff, &faces, &nfaces); -- -- for (i = 0; i < nfaces; i++) { -- PangoFontDescription *pfd = pango_font_face_describe (faces[i]); -- PangoStyle style = pango_font_description_get_style (pfd); -- PangoWeight weight = pango_font_description_get_weight (pfd); -- /* -- * This is a quick and dirty way to pick the styles present, -- * sort them and avoid duplicates. -- * We set a bit for each style present, bit (weight*3+style) -- * From style_labels, we pick #(weight*3+style) -- * where weight and style are the Dia types. -- */ -- /* Account for DIA_WEIGHT_NORMAL hack */ -- int weightnr = (weight-200)/100; -- if (weightnr < 2) weightnr ++; -- else if (weightnr == 2) weightnr = 0; -- stylebits |= 1 << (3*weightnr + style); -- pango_font_description_free (pfd); -- } -- -- g_clear_pointer (&faces, g_free); -- -- if (stylebits == 0) { -- g_warning ("'%s' has no style!", -- pango_font_family_get_name (pff) ? pango_font_family_get_name (pff) : "(null font)"); -- } -- -- gtk_list_store_clear (priv->styles_store); -- -- for (i = DIA_FONT_NORMAL; i <= (DIA_FONT_HEAVY | DIA_FONT_ITALIC); i+=4) { -- GtkTreeIter iter; -- -- /* -- * bad hack continued ... -- */ -- int weight = DIA_FONT_STYLE_GET_WEIGHT (i) >> 4; -- int slant = DIA_FONT_STYLE_GET_SLANT (i) >> 2; -- -- if (DIA_FONT_STYLE_GET_SLANT (i) > DIA_FONT_ITALIC) { -- continue; -- } -- -- if (!(stylebits & (1 << (3 * weight + slant)))) { -- continue; -- } -- -- gtk_list_store_append (priv->styles_store, &iter); -- gtk_list_store_set (priv->styles_store, -- &iter, -- STYLE_COL_LABEL, style_labels[3 * weight + slant], -- STYLE_COL_ID, i, -- -1); -- -- if (dia_style == i || (i == DIA_FONT_NORMAL && dia_style == -1)) { -- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->styles), &iter); -- } -- } -- -- gtk_widget_set_sensitive (GTK_WIDGET (priv->styles), -- gtk_tree_model_iter_n_children (GTK_TREE_MODEL (priv->styles_store), NULL) > 1); --} -- -- --static void --font_changed (GtkComboBox *widget, -- DiaFontSelector *self) --{ -- DiaFontSelectorPrivate *priv; -- GtkTreeIter active; -- GtkTreePath *active_path; -- GtkTreePath *path; -- char *family = NULL; -- -- g_return_if_fail (DIA_IS_FONT_SELECTOR (self)); -- -- priv = dia_font_selector_get_instance_private (self); -- -- gtk_combo_box_get_active_iter (widget, &active); -- -- active_path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->fonts_store), &active); -- path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->fonts_store), &priv->fonts_reset); -- -- if (gtk_tree_path_compare (path, active_path) == 0) { -- GtkTreeIter iter; -- GtkTreePath *end_path; -- DiaFont *font; -- -- persistent_list_clear (PERSIST_NAME); -- -- path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->fonts_store), &priv->fonts_default_end); -- -- // Move over the separator -- gtk_tree_path_next (path); -- gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->fonts_store), &iter, path); -- -- end_path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->fonts_store), &priv->fonts_custom_end); -- -- while (gtk_tree_path_compare (path, end_path) != 0) { -- gtk_tree_store_remove (priv->fonts_store, &iter); -- -- gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->fonts_store), &iter, path); -- -- gtk_tree_path_free (end_path); -- end_path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->fonts_store), &priv->fonts_custom_end); -- } -- -- gtk_tree_path_free (path); -- gtk_tree_path_free (end_path); -- gtk_tree_path_free (active_path); -- -- if (priv->current) { -- font = dia_font_new (priv->current, priv->current_style, 1.0); -- dia_font_selector_set_font (self, font); -- g_clear_object (&font); -- } else { -- gtk_tree_model_get_iter_first (GTK_TREE_MODEL (priv->fonts_store), &iter); -- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->fonts), &iter); -- } -- -- return; -- } -- -- gtk_tree_model_get (GTK_TREE_MODEL (priv->fonts_store), -- &active, -- FONT_COL_FAMILY, &family, -- -1); -- -- g_clear_pointer (&priv->current, g_free); -- priv->current = g_strdup (family); -- -- set_styles (self, family, -1); -- g_signal_emit (G_OBJECT (self), signals[VALUE_CHANGED], 0); -- -- if (g_strcmp0 (family, "sans") != 0 && -- g_strcmp0 (family, "serif") != 0 && -- g_strcmp0 (family, "monospace") != 0 && -- !persistent_list_add (PERSIST_NAME, family)) { -- GtkTreeIter iter; -- -- gtk_tree_store_insert_before (priv->fonts_store, -- &iter, -- NULL, -- &priv->fonts_custom_end); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, family, -- -1); -- -- gtk_combo_box_set_active_iter (widget, &iter); -- } -- -- gtk_tree_path_free (path); -- gtk_tree_path_free (active_path); -- g_clear_pointer (&family, g_free); --} -- -- --static gboolean --is_separator (GtkTreeModel *model, -- GtkTreeIter *iter, -- gpointer data) --{ -- gboolean result; -- char *family; -- -- gtk_tree_model_get (model, iter, FONT_COL_FAMILY, &family, -1); -- -- result = g_strcmp0 (family, "separator") == 0; -- -- g_clear_pointer (&family, g_free); -- -- return result; --} -- -- --static void --is_sensitive (GtkCellLayout *cell_layout, -- GtkCellRenderer *cell, -- GtkTreeModel *tree_model, -- GtkTreeIter *iter, -- gpointer data) --{ -- gboolean sensitive; -- -- sensitive = !gtk_tree_model_iter_has_child (tree_model, iter); -- -- g_object_set (cell, "sensitive", sensitive, NULL); --} -- -- --static void --style_changed (GtkComboBox *widget, -- DiaFontSelector *self) --{ -- DiaFontSelectorPrivate *priv; -- GtkTreeIter active; -- -- g_return_if_fail (DIA_IS_FONT_SELECTOR (self)); -- -- priv = dia_font_selector_get_instance_private (self); -- -- if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->styles), &active)) { -- gtk_tree_model_get (GTK_TREE_MODEL (priv->styles_store), -- &active, -- STYLE_COL_ID, &priv->current_style, -- -1); -- } else { -- priv->current_style = 0; -- } -- -- g_signal_emit (G_OBJECT (self), signals[VALUE_CHANGED], 0); --} -- -- --static void --dia_font_selector_init (DiaFontSelector *fs) --{ -- DiaFontSelectorPrivate *priv; -- PangoFontFamily **families; -- int n_families,i; -- GtkCellRenderer *renderer; -- GtkTreeIter iter; -- GList *tmplist; -- -- g_return_if_fail (DIA_IS_FONT_SELECTOR (fs)); -- -- priv = dia_font_selector_get_instance_private (fs); -- -- priv->fonts_store = gtk_tree_store_new (FONT_N_COL, G_TYPE_STRING); -- -- gtk_tree_store_append (priv->fonts_store, &iter, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, "sans", -- -1); -- gtk_tree_store_append (priv->fonts_store, &iter, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, "serif", -- -1); -- gtk_tree_store_append (priv->fonts_store, &iter, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, "monospace", -- -1); -- -- gtk_tree_store_append (priv->fonts_store, &priv->fonts_default_end, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &priv->fonts_default_end, -- FONT_COL_FAMILY, "separator", -- -1); -- -- persistence_register_list (PERSIST_NAME); -- -- for (tmplist = persistent_list_get_glist (PERSIST_NAME); -- tmplist != NULL; tmplist = g_list_next (tmplist)) { -- gtk_tree_store_append (priv->fonts_store, &iter, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, tmplist->data, -- -1); -- } -- -- gtk_tree_store_append (priv->fonts_store, &priv->fonts_custom_end, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &priv->fonts_custom_end, -- FONT_COL_FAMILY, "separator", -- -1); -- -- gtk_tree_store_append (priv->fonts_store, &priv->fonts_other, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &priv->fonts_other, -- FONT_COL_FAMILY, _("Other Fonts"), -- -1); -- -- gtk_tree_store_append (priv->fonts_store, &priv->fonts_reset, NULL); -- gtk_tree_store_set (priv->fonts_store, -- &priv->fonts_reset, -- FONT_COL_FAMILY, _("Reset Menu"), -- -1); -- -- priv->fonts = gtk_combo_box_new_with_model (GTK_TREE_MODEL (priv->fonts_store)); -- gtk_widget_set_hexpand (priv->fonts, TRUE); -- gtk_widget_show (priv->fonts); -- -- g_signal_connect (priv->fonts, -- "changed", -- G_CALLBACK (font_changed), -- fs); -- -- renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->fonts), renderer, TRUE); -- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->fonts), renderer, -- "text", FONT_COL_FAMILY, -- "family", FONT_COL_FAMILY, -- NULL); -- -- gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (priv->fonts), -- is_separator, NULL, NULL); -- gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (priv->fonts), -- renderer, -- is_sensitive, -- NULL, NULL); -- -- priv->styles_store = gtk_list_store_new (STYLE_N_COL, -- G_TYPE_STRING, -- G_TYPE_INT); -- priv->styles = gtk_combo_box_new_with_model (GTK_TREE_MODEL (priv->styles_store)); -- gtk_widget_show (priv->styles); -- -- g_signal_connect (priv->styles, -- "changed", -- G_CALLBACK (style_changed), -- fs); -- -- renderer = gtk_cell_renderer_text_new (); -- gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->styles), renderer, TRUE); -- gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (priv->styles), renderer, -- "text", STYLE_COL_LABEL, -- NULL); -- -- pango_context_list_families (dia_font_get_context (), -- &families, -- &n_families); -- -- qsort (families, -- n_families, -- sizeof (PangoFontFamily *), -- sort_fonts); -- -- /* Doing it the slow way until I find a better way */ -- for (i = 0; i < n_families; i++) { -- gtk_tree_store_append (priv->fonts_store, -- &iter, -- &priv->fonts_other); -- gtk_tree_store_set (priv->fonts_store, -- &iter, -- FONT_COL_FAMILY, pango_font_family_get_name (families[i]), -- -1); -- } -- g_clear_pointer (&families, g_free); -- -- gtk_box_pack_start (GTK_BOX (fs), GTK_WIDGET (priv->fonts), FALSE, TRUE, 0); -- gtk_box_pack_start (GTK_BOX (fs), GTK_WIDGET (priv->styles), FALSE, TRUE, 0); --} -- -- --GtkWidget * --dia_font_selector_new (void) --{ -- return g_object_new (DIA_TYPE_FONT_SELECTOR, NULL); --} -- -- --static gboolean --set_font (GtkTreeModel *model, -- GtkTreePath *path, -- GtkTreeIter *iter, -- gpointer data) --{ -- DiaFontSelector *self = DIA_FONT_SELECTOR (data); -- DiaFontSelectorPrivate *priv = dia_font_selector_get_instance_private (self); -- char *font; -- gboolean res = FALSE; -- -- gtk_tree_model_get (model, -- iter, -- FONT_COL_FAMILY, &font, -- -1); -- -- res = g_strcmp0 (priv->looking_for, font) == 0; -- if (res) { -- gtk_combo_box_set_active_iter (GTK_COMBO_BOX (priv->fonts), iter); -- } -- -- g_clear_pointer (&font, g_free); -- -- return res; --} -- -- --/** -- * dia_font_selector_set_font: -- * -- * Set the current font to be shown in the font selector. -- */ --void --dia_font_selector_set_font (DiaFontSelector *self, DiaFont *font) --{ -- DiaFontSelectorPrivate *priv; -- const gchar *fontname = dia_font_get_family (font); -- -- g_return_if_fail (DIA_IS_FONT_SELECTOR (self)); -- -- priv = dia_font_selector_get_instance_private (self); -- -- priv->looking_for = fontname; -- gtk_tree_model_foreach (GTK_TREE_MODEL (priv->fonts_store), set_font, self); -- priv->looking_for = NULL; -- -- set_styles (self, fontname, dia_font_get_style (font)); --} -- -- --DiaFont * --dia_font_selector_get_font (DiaFontSelector *self) --{ -- DiaFontSelectorPrivate *priv; -- DiaFontStyle style; -- DiaFont *font; -- GtkTreeIter iter; -- char *fontname = NULL; -- -- g_return_val_if_fail (DIA_IS_FONT_SELECTOR (self), NULL); -- -- priv = dia_font_selector_get_instance_private (self); -- -- if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->fonts), &iter)) { -- gtk_tree_model_get (GTK_TREE_MODEL (priv->fonts_store), -- &iter, -- FONT_COL_FAMILY, &fontname, -- -1); -- } else { -- g_warning ("No font selected"); -- } -- -- if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->styles), &iter)) { -- gtk_tree_model_get (GTK_TREE_MODEL (priv->styles_store), -- &iter, -- STYLE_COL_ID, &style, -- -1); -- } else { -- style = 0; -- } -- -- font = dia_font_new (fontname, style, 1.0); -- -- g_clear_pointer (&fontname, g_free); -- -- return font; --} -- -diff --git a/lib/dia-font-selector.h b/lib/dia-font-selector.h -deleted file mode 100644 -index 8ffba0ccb..000000000 ---- a/lib/dia-font-selector.h -+++ /dev/null -@@ -1,37 +0,0 @@ --/* Dia -- an diagram creation/manipulation program -- * Copyright (C) 1998 Alexander Larsson -- * -- * This program is free software; you can redistribute it and/or modify -- * it under the terms of the GNU General Public License as published by -- * the Free Software Foundation; either version 2 of the License, or -- * (at your option) any later version. -- * -- * This program is distributed in the hope that it will be useful, -- * but WITHOUT ANY WARRANTY; without even the implied warranty of -- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- * GNU General Public License for more details. -- * -- * You should have received a copy of the GNU General Public License -- * along with this program; if not, write to the Free Software -- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -- * -- * SPDX-License-Identifier: GPL-2.0-or-later -- */ -- --#pragma once -- --#include -- --#include "font.h" -- --G_BEGIN_DECLS -- --#define DIA_TYPE_FONT_SELECTOR dia_font_selector_get_type () --G_DECLARE_FINAL_TYPE (DiaFontSelector, dia_font_selector, DIA, FONT_SELECTOR, GtkBox) -- --GtkWidget *dia_font_selector_new (void); --void dia_font_selector_set_font (DiaFontSelector *self, -- DiaFont *font); --DiaFont *dia_font_selector_get_font (DiaFontSelector *self); -- --G_END_DECLS -diff --git a/lib/libdia.def b/lib/libdia.def -index db1c4ad7a..7f2364ddd 100644 ---- a/lib/libdia.def -+++ b/lib/libdia.def -@@ -252,11 +252,6 @@ EXPORTS - dia_font_copy - dia_font_string_width - -- dia_font_selector_get_font -- dia_font_selector_get_type -- dia_font_selector_new -- dia_font_selector_set_font -- - dia_guide_new - dia_guide_copy - dia_guide_free -diff --git a/lib/meson.build b/lib/meson.build -index f1ffb9659..7d2058c41 100644 ---- a/lib/meson.build -+++ b/lib/meson.build -@@ -167,8 +167,6 @@ libdia_sources = stdprop_sources + [ - 'dia-colour-cell-renderer.h', - 'dia-colour-selector.c', - 'dia-colour-selector.h', -- 'dia-font-selector.c', -- 'dia-font-selector.h', - 'dia-graphene.h', - 'dia-guide.c', - 'dia-guide.h', -diff --git a/lib/prop_attr.c b/lib/prop_attr.c -index 18a850a41..2362813a0 100644 ---- a/lib/prop_attr.c -+++ b/lib/prop_attr.c -@@ -29,11 +29,11 @@ - - #include - #include "dia_xml.h" -+#include "font.h" - #include "properties.h" - #include "propinternals.h" - #include "dia-arrow-selector.h" - #include "dia-colour-selector.h" --#include "dia-font-selector.h" - #include "dia-line-style-selector.h" - - /***************************/ -@@ -421,22 +421,27 @@ fontprop_copy(FontProperty *src) - static WIDGET * - fontprop_get_widget(FontProperty *prop, PropDialog *dialog) - { -- GtkWidget *ret = dia_font_selector_new(); -- prophandler_connect(&prop->common, G_OBJECT(ret), "value-changed"); -+ GtkWidget *ret = gtk_font_button_new(); -+ gtk_font_chooser_set_level (GTK_FONT_CHOOSER (ret), GTK_FONT_CHOOSER_LEVEL_FAMILY | GTK_FONT_CHOOSER_LEVEL_STYLE); -+ prophandler_connect(&prop->common, G_OBJECT(ret), "font-set"); - return ret; - } - - static void - fontprop_reset_widget(FontProperty *prop, WIDGET *widget) - { -- dia_font_selector_set_font (DIA_FONT_SELECTOR (widget), -- prop->font_data); -+ const PangoFontDescription *desc = dia_font_get_description (prop->font_data); -+ gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (widget), desc); - } - - static void - fontprop_set_from_widget(FontProperty *prop, WIDGET *widget) - { -- prop->font_data = dia_font_selector_get_font (DIA_FONT_SELECTOR (widget)); -+ char *desc = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (widget)); -+ DiaFont *new_font = dia_font_new_from_description (desc); -+ -+ g_clear_pointer (&desc, g_free); -+ g_set_object (&prop->font_data, new_font); - } - - static void -diff --git a/objects/UML/class_dialog.c b/objects/UML/class_dialog.c -index 163cc2949..56af1d84b 100644 ---- a/objects/UML/class_dialog.c -+++ b/objects/UML/class_dialog.c -@@ -40,6 +40,7 @@ - #include - #include - -+#include "font.h" - #include "object.h" - #include "class.h" - #include "diaoptionmenu.h" -@@ -196,6 +197,28 @@ _class_set_comment (GtkTextView *view, gchar *text) - } - - -+static DiaFont * -+_font_from_button (GtkFontButton *btn) -+{ -+ char *font_desc; -+ DiaFont *ret; -+ -+ font_desc = gtk_font_chooser_get_font (GTK_FONT_CHOOSER (btn)); -+ ret = dia_font_new_from_description (font_desc); -+ g_clear_pointer (&font_desc, g_free); -+ -+ return ret; -+} -+ -+ -+static void -+_set_selector_font (GtkFontButton *btn, DiaFont *font) -+{ -+ gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (btn), -+ dia_font_get_description (font)); -+} -+ -+ - static void - class_read_from_dialog(UMLClass *umlclass, UMLClassDialog *prop_dialog) - { -@@ -243,12 +266,12 @@ class_read_from_dialog(UMLClass *umlclass, UMLClassDialog *prop_dialog) - dia_colour_selector_get_colour (DIA_COLOUR_SELECTOR (prop_dialog->fill_color), - ¨class->fill_color); - -- umlclass->normal_font = dia_font_selector_get_font (prop_dialog->normal_font); -- umlclass->polymorphic_font = dia_font_selector_get_font (prop_dialog->polymorphic_font); -- umlclass->abstract_font = dia_font_selector_get_font (prop_dialog->abstract_font); -- umlclass->classname_font = dia_font_selector_get_font (prop_dialog->classname_font); -- umlclass->abstract_classname_font = dia_font_selector_get_font (prop_dialog->abstract_classname_font); -- umlclass->comment_font = dia_font_selector_get_font (prop_dialog->comment_font); -+ umlclass->normal_font = _font_from_button(prop_dialog->normal_font); -+ umlclass->polymorphic_font = _font_from_button(prop_dialog->polymorphic_font); -+ umlclass->abstract_font = _font_from_button(prop_dialog->abstract_font); -+ umlclass->classname_font = _font_from_button (prop_dialog->classname_font); -+ umlclass->abstract_classname_font = _font_from_button (prop_dialog->abstract_classname_font); -+ umlclass->comment_font = _font_from_button (prop_dialog->comment_font); - - umlclass->font_height = gtk_spin_button_get_value (prop_dialog->normal_font_height); - umlclass->abstract_font_height = gtk_spin_button_get_value (prop_dialog->abstract_font_height); -@@ -291,12 +314,12 @@ class_fill_in_dialog(UMLClass *umlclass) - dia_colour_selector_set_colour (prop_dialog->text_color, ¨class->text_color); - dia_colour_selector_set_colour (prop_dialog->line_color, ¨class->line_color); - dia_colour_selector_set_colour (prop_dialog->fill_color, ¨class->fill_color); -- dia_font_selector_set_font (prop_dialog->normal_font, umlclass->normal_font); -- dia_font_selector_set_font (prop_dialog->polymorphic_font, umlclass->polymorphic_font); -- dia_font_selector_set_font (prop_dialog->abstract_font, umlclass->abstract_font); -- dia_font_selector_set_font (prop_dialog->classname_font, umlclass->classname_font); -- dia_font_selector_set_font (prop_dialog->abstract_classname_font, umlclass->abstract_classname_font); -- dia_font_selector_set_font (prop_dialog->comment_font, umlclass->comment_font); -+ _set_selector_font (prop_dialog->normal_font, umlclass->normal_font); -+ _set_selector_font (prop_dialog->polymorphic_font, umlclass->polymorphic_font); -+ _set_selector_font (prop_dialog->abstract_font, umlclass->abstract_font); -+ _set_selector_font (prop_dialog->classname_font, umlclass->classname_font); -+ _set_selector_font (prop_dialog->abstract_classname_font, umlclass->abstract_classname_font); -+ _set_selector_font (prop_dialog->comment_font, umlclass->comment_font); - gtk_spin_button_set_value (prop_dialog->normal_font_height, umlclass->font_height); - gtk_spin_button_set_value (prop_dialog->polymorphic_font_height, umlclass->polymorphic_font_height); - gtk_spin_button_set_value (prop_dialog->abstract_font_height, umlclass->abstract_font_height); -@@ -311,7 +334,7 @@ create_font_props_row (GtkGrid *grid, - gint row, - DiaFont *font, - real height, -- DiaFontSelector **fontsel, -+ GtkFontButton **fontsel, - GtkSpinButton **heightsel) - { - GtkWidget *label; -@@ -320,9 +343,10 @@ create_font_props_row (GtkGrid *grid, - label = gtk_label_new (kind); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_grid_attach (grid, label, 0, row, 1, 1); -- *fontsel = DIA_FONT_SELECTOR (dia_font_selector_new ()); -+ *fontsel = GTK_FONT_BUTTON (gtk_font_button_new ()); - gtk_widget_set_hexpand (GTK_WIDGET (*fontsel), TRUE); -- dia_font_selector_set_font (DIA_FONT_SELECTOR (*fontsel), font); -+ gtk_font_chooser_set_font_desc (GTK_FONT_CHOOSER (*fontsel), dia_font_get_description (font)); -+ gtk_font_chooser_set_level (GTK_FONT_CHOOSER (*fontsel), GTK_FONT_CHOOSER_LEVEL_FAMILY | GTK_FONT_CHOOSER_LEVEL_STYLE); - gtk_grid_attach (GTK_GRID (grid), GTK_WIDGET(*fontsel), 1, row, 1, 1); - - adj = GTK_ADJUSTMENT (gtk_adjustment_new (height, 0.1, 10.0, 0.1, 1.0, 0)); -diff --git a/objects/UML/class_dialog.h b/objects/UML/class_dialog.h -index 6bbb4b404..bf38b5613 100644 ---- a/objects/UML/class_dialog.h -+++ b/objects/UML/class_dialog.h -@@ -1,7 +1,6 @@ - #pragma once - - #include "dia-colour-selector.h" --#include "dia-font-selector.h" - - G_BEGIN_DECLS - -@@ -32,12 +31,12 @@ struct _UMLClassDialog { - GtkToggleButton *op_supp; - GtkToggleButton *comments_vis; - GtkToggleButton *op_wrap; -- DiaFontSelector *normal_font; -- DiaFontSelector *abstract_font; -- DiaFontSelector *polymorphic_font; -- DiaFontSelector *classname_font; -- DiaFontSelector *abstract_classname_font; -- DiaFontSelector *comment_font; -+ GtkFontButton *normal_font; -+ GtkFontButton *abstract_font; -+ GtkFontButton *polymorphic_font; -+ GtkFontButton *classname_font; -+ GtkFontButton *abstract_classname_font; -+ GtkFontButton *comment_font; - GtkSpinButton *normal_font_height; - GtkSpinButton *abstract_font_height; - GtkSpinButton *polymorphic_font_height; --- -GitLab - diff --git a/helpers/DATA/firefox/patch_changes/012-fix_wrong_directory_on_home_dir_for_abrowser.patch b/helpers/DATA/firefox/patch_changes/012-fix_wrong_directory_on_home_dir_for_abrowser.patch index 8241634..42890c6 100644 --- a/helpers/DATA/firefox/patch_changes/012-fix_wrong_directory_on_home_dir_for_abrowser.patch +++ b/helpers/DATA/firefox/patch_changes/012-fix_wrong_directory_on_home_dir_for_abrowser.patch @@ -1,14 +1,12 @@ -diff --git a/toolkit/xre/nsXREDirProvider.cpp b/toolkit/xre/nsXREDirProvider.cpp -index 9c94cb88..0c19fad9 100644 ---- a/toolkit/xre/nsXREDirProvider.cpp -+++ b/toolkit/xre/nsXREDirProvider.cpp -@@ -1232,7 +1232,8 @@ nsresult nsXREDirProvider::AppendProfilePath(nsIFile* aFile, bool aLocal) { - if (gAppData->profile) { - profile = gAppData->profile; - } else { -- appName = gAppData->name; -+ // For Abrowser compatibility: force use of ~/.mozilla/abrowser -+ appName.AssignLiteral("abrowser"); - vendor = gAppData->vendor; - } - +diff --git a/debian/config/mozconfig.in b/debian/config/mozconfig.in +index aee1b988..291b4683 100644 +--- a/debian/config/mozconfig.in ++++ b/debian/config/mozconfig.in +@@ -71,6 +71,7 @@ ac_add_options --disable-av1 + %%endif + %%if MOZ_APP_NAME != MOZ_DEFAULT_APP_NAME + ac_add_options --with-app-name=@MOZ_APP_NAME@ ++ac_add_options --with-app-basename=@MOZ_APP_NAME@ + %%endif + %%if DISTRIB == Ubuntu + #ac_add_options --with-ua-vendor=Ubuntu diff --git a/helpers/DATA/kolourpaint/patch_changes/000-add_recommends_icon_theme_for_kolourpaint.patch b/helpers/DATA/kolourpaint/patch_changes/000-add_recommends_icon_theme_for_kolourpaint.patch deleted file mode 100644 index 89736f9..0000000 --- a/helpers/DATA/kolourpaint/patch_changes/000-add_recommends_icon_theme_for_kolourpaint.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/debian/control b/debian/control -index 43e3abe5..1677a89d 100644 ---- a/debian/control -+++ b/debian/control -@@ -32,6 +32,7 @@ Package: kolourpaint - Section: graphics - Architecture: any - Depends: ${misc:Depends}, ${shlibs:Depends} -+Recommends: breeze-icon-theme - Breaks: kolourpaint4 (<< 4:17.04) - Replaces: kolourpaint4 (<< 4:17.04) - Description: simple image editor and drawing application diff --git a/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg b/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg index 0a5bed4..8b65961 100644 --- a/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg +++ b/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg @@ -68,8 +68,8 @@ BackupExt=distUpgrade LogDir=/var/log/dist-upgrade/ [Sources] -From=aramo -To=ecne +From=nabia +To=aramo ValidOrigin=Trisquel ValidMirrors = mirrors.cfg Components=main diff --git a/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg.aramo b/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg.aramo deleted file mode 100644 index 0a5bed4..0000000 --- a/helpers/DATA/ubuntu-release-upgrader/DistUpgrade.cfg.aramo +++ /dev/null @@ -1,93 +0,0 @@ -[View] -# the views will be tried in this order, if one fails to import, the next -# is tried -View=DistUpgradeViewGtk3,DistUpgradeViewKDE,DistUpgradeViewText -#View=DistUpgradeViewNonInteractive -#Depends= apt (>= 1.0.10.2ubuntu2) -# the views below support upgrades over ssh connection -SupportSSH=DistUpgradeViewText,DistUpgradeViewNonInteractive - -# Distro contains global information about the upgrade -[Distro] -# the meta-pkgs we support -MetaPkgs=trisquel, trisquel-mini, triskel, trisquel-sugar, trisquel-gnome -BaseMetaPkgs=trisquel-minimal, trisquel-base -IgnoredTasks=minimal, standard -Demotions=demoted.cfg -RemovalDenylistFile=removal_denylist.cfg -# if those packages were installed, make sure to keep them installed -KeepInstalledPkgs=xserver-xorg-video-all -KeepInstalledSection=translations -RemoveObsoletes=yes -PurgeObsoletes=yes -#ForcedObsoletes=ksplash-engine-moodin, powernowd, laptop-mode-tools -# hints for for stuff that should be done right after the cache calculated -# the dist-upgrade (not to be confused with the PostUpgrade hooks in the -# quirks handling) -#PostUpgradePurge=linux-restricted-modules-common -#PostUpgradeRemove=xsettings-kde -PostUpgradeRemove=resolvconf,notification-daemon -#PostUpgradeUpgrade=brasero,edubuntu-desktop -#PostUpgradeInstall=apt -#PostInstallScripts=./trisquel-postinstall.sh -EnableApport=no -# this supported deny listing certain versions to ensure we do not upgrade -# - blcr-dkms fails to build on kernel 2.6.35 -#BadVersions=blcr-dkms_0.8.2-13 -# ubiquity slideshow -#SlideshowUrl=http://people.canonical.com/~mvo/ubiquity-slideshow-upgrade/slides/ - -[trisquel] -KeyDependencies=lightdm, mate-desktop-environment, marco, ubuntu-mate-default-settings, lightdm-gtk-greeter -# those pkgs will be marked remove right after the distUpgrade in the cache -PostUpgradeRemove=casper, xscreensaver, powermanagement-interface, compiz-core, gdm, gnome-ppp, resolvconf -ForcedObsoletes= cups-pdf, notification-daemon, libcogl15, resolvconf - -[trisquel-mini] -KeyDependencies=lxde -#Remove previous gnome component from ltrisquel to avoid pulling gnome depends on upgrade (LP: #945215) -PostUpgradeRemove=casper, gnome-bluetooth, resolvconf -ForcedObsoletes= cups-pdf, notification-daemon, libcogl15, resolvconf - -[triskel] -KeyDependencies=triskel-settings-desktop, plasma-desktop, sddm -PostUpgradeRemove=powermanagement-interface, guidance-power-manager, kde-guidance-powermanager, kmix -# those packages are marked as obsolete right after the upgrade -ForcedObsoletes=ivman, gtk-qt-engine -# help the resolver a bit: LP: #1426132 -PostUpgradeInstall=baloo-kf5 - -[trisquel-sugar] -KeyDependencies=sugar, lightdm-gtk-greeter - -[trisquel-gnome] -KeyDependencies=gnome-core, gdm3 - -[Files] -BackupExt=distUpgrade -LogDir=/var/log/dist-upgrade/ - -[Sources] -From=aramo -To=ecne -ValidOrigin=Trisquel -ValidMirrors = mirrors.cfg -Components=main -Pockets=security,updates,backports -;AllowThirdParty=False - -;[PreRequists] -;Packages=release-upgrader-apt,release-upgrader-dpkg -;SourcesList=prerequists-sources.list -;SourcesList-ia64=prerequists-sources.ports.list -;SourcesList-hppa=prerequists-sources.ports.list - -[Network] -MaxRetries=3 - -[NonInteractive] -ForceOverwrite=yes -RealReboot=no -DebugBrokenScripts=no -DpkgProgressLog=no -;TerminalTimeout=2400 diff --git a/helpers/DATA/ubuntu-release-upgrader/patch_changes/000-automatic_install_usrmerge_for_t-r-u.patch b/helpers/DATA/ubuntu-release-upgrader/patch_changes/000-automatic_install_usrmerge_for_t-r-u.patch deleted file mode 100644 index 9d2e828..0000000 --- a/helpers/DATA/ubuntu-release-upgrader/patch_changes/000-automatic_install_usrmerge_for_t-r-u.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/DistUpgrade/DistUpgradeQuirks.py b/DistUpgrade/DistUpgradeQuirks.py -index 9423f091..00d9b84c 100644 ---- a/DistUpgrade/DistUpgradeQuirks.py -+++ b/DistUpgrade/DistUpgradeQuirks.py -@@ -2000,17 +2000,27 @@ class DistUpgradeQuirks(object): - break - - if fail: -- logging.debug('System is not /usr-merged!') -- self._view.error( -- _( -- f'Cannot upgrade system with unmerged /usr' -- ), -- _( -- 'Please install the usrmerge package to fix this, ' -- 'and then try the upgrade again.' -- ), -+ logging.warning( -+ "System is not /usr-merged. Installing usrmerge before continuing..." -+ ) -+ res = subprocess.run(["apt-get", "update"]) -+ res2 = subprocess.run(["apt-get", "-y", "install", "usrmerge"]) -+ -+ if res2.returncode != 0: -+ # Installation failed, abort the upgrade with a clear message -+ self.controller.error(_( -+ "The system is not /usr-merged and 'usrmerge' could not be " -+ "installed automatically. Please install it manually and " -+ "try again." -+ )) -+ return -+ -+ # Re-check that /usr merge is now in place -+ # (ensure /bin -> /usr/bin, /lib -> /usr/lib, etc.) -+ logging.info( -+ "usrmerge installed successfully; system is now /usr-merged. " -+ "Proceeding with the upgrade." - ) -- self.controller.abort() - - def _disable_cloud_init(self): - """ diff --git a/helpers/DATA/yt-dlp/patch_changes/000-add_cookies_support_for_firefox_based_browser_abrowser.patch b/helpers/DATA/yt-dlp/patch_changes/000-add_cookies_support_for_firefox_based_browser_abrowser.patch deleted file mode 100644 index ddcb270..0000000 --- a/helpers/DATA/yt-dlp/patch_changes/000-add_cookies_support_for_firefox_based_browser_abrowser.patch +++ /dev/null @@ -1,102 +0,0 @@ -Enables Firefox based browser 'Abrowser' with custom folder (.mozilla/abrowser) -to use the --cookies-from-browser feature, might also work for other customized -browser in similar cases. - - -diff --git a/yt_dlp/cookies.py b/yt_dlp/cookies.py -index 5675445a..7afd324b 100644 ---- a/yt_dlp/cookies.py -+++ b/yt_dlp/cookies.py -@@ -47,7 +47,7 @@ - from .utils.networking import normalize_url - - CHROMIUM_BASED_BROWSERS = {'brave', 'chrome', 'chromium', 'edge', 'opera', 'vivaldi', 'whale'} --SUPPORTED_BROWSERS = CHROMIUM_BASED_BROWSERS | {'firefox', 'safari'} -+SUPPORTED_BROWSERS = CHROMIUM_BASED_BROWSERS | {'abrowser', 'firefox', 'safari'} - - - class YDLLogger(_YDLLogger): -@@ -114,8 +114,8 @@ def load_cookies(cookie_file, browser_specification, ydl): - - - def extract_cookies_from_browser(browser_name, profile=None, logger=YDLLogger(), *, keyring=None, container=None): -- if browser_name == 'firefox': -- return _extract_firefox_cookies(profile, container, logger) -+ if browser_name in ('firefox', 'abrowser'): -+ return _extract_firefox_cookies(profile, container, logger, browser_name) - elif browser_name == 'safari': - return _extract_safari_cookies(profile, logger) - elif browser_name in CHROMIUM_BASED_BROWSERS: -@@ -124,15 +124,15 @@ def extract_cookies_from_browser(browser_name, profile=None, logger=YDLLogger(), - raise ValueError(f'unknown browser: {browser_name}') - - --def _extract_firefox_cookies(profile, container, logger): -- logger.info('Extracting cookies from firefox') -+def _extract_firefox_cookies(profile, container, logger, browser_name): -+ logger.info(f'Extracting cookies from {browser_name}') - if not sqlite3: -- logger.warning('Cannot extract cookies from firefox without sqlite3 support. ' -+ logger.warning(f'Cannot extract cookies from {browser_name} without sqlite3 support. ' - 'Please use a Python interpreter compiled with sqlite3 support') - return YoutubeDLCookieJar() - - if profile is None: -- search_roots = list(_firefox_browser_dirs()) -+ search_roots = list(_firefox_browser_dirs(browser_name)) - elif _is_path(profile): - search_roots = [profile] - else: -@@ -141,7 +141,7 @@ def _extract_firefox_cookies(profile, container, logger, browser_name): - - cookie_database_path = _newest(_firefox_cookie_dbs(search_roots)) - if cookie_database_path is None: -- raise FileNotFoundError(f'could not find firefox cookies database in {search_root}') -+ raise FileNotFoundError(f'could not find {browser_name} cookies database in {search_root}') - logger.debug(f'Extracting cookies from: "{cookie_database_path}"') - - container_id = None -@@ -156,7 +156,7 @@ def _extract_firefox_cookies(profile, container, logger, browser_name): - try_call(lambda: re.fullmatch(r'userContext([^\.]+)\.label', context['l10nID']).group()), - )), None) - if not isinstance(container_id, int): -- raise ValueError(f'could not find firefox container "{container}" in containers.json') -+ raise ValueError(f'could not find {browser_name} container "{container}" in containers.json') - - with tempfile.TemporaryDirectory(prefix='yt_dlp') as tmpdir: - cursor = None -@@ -164,7 +164,7 @@ def _extract_firefox_cookies(profile, container, logger, browser_name): - cursor = _open_database_copy(cookie_database_path, tmpdir) - if isinstance(container_id, int): - logger.debug( -- f'Only loading cookies from firefox container "{container}", ID {container_id}') -+ f'Only loading cookies from {browser_name} container "{container}", ID {container_id}') - cursor.execute( - 'SELECT host, name, value, path, expiry, isSecure FROM moz_cookies WHERE originAttributes LIKE ? OR originAttributes LIKE ?', - (f'%userContextId={container_id}', f'%userContextId={container_id}&%')) -@@ -186,14 +186,14 @@ def _extract_firefox_cookies(profile, container, logger): - path=path, path_specified=bool(path), secure=is_secure, expires=expiry, discard=False, - comment=None, comment_url=None, rest={}) - jar.set_cookie(cookie) -- logger.info(f'Extracted {len(jar)} cookies from firefox') -+ logger.info(f'Extracted {len(jar)} cookies from {browser_name}') - return jar - finally: - if cursor is not None: - cursor.connection.close() - - --def _firefox_browser_dirs(): -+def _firefox_browser_dirs(browser_name='firefox'): - if sys.platform in ('cygwin', 'win32'): - yield from map(os.path.expandvars, ( - R'%APPDATA%\Mozilla\Firefox\Profiles', -@@ -205,7 +205,7 @@ def _firefox_browser_dirs(): - - else: - yield from map(os.path.expanduser, ( -- '~/.mozilla/firefox', -+ f'~/.mozilla/{browser_name}', - '~/snap/firefox/common/.mozilla/firefox', - '~/.var/app/org.mozilla.firefox/.mozilla/firefox', - )) diff --git a/helpers/config b/helpers/config index b39e4e7..c42bcc2 100755 --- a/helpers/config +++ b/helpers/config @@ -38,18 +38,18 @@ fi [ -d PACKAGES ] || mkdir PACKAGES export DEBIAN_FRONTEND=noninteractive -export DEBEMAIL=devel@cmxsl.org -export DEBFULLNAME="Desarrollo CMXSL" +export DEBEMAIL=trisquel-devel@listas.trisquel.info +export DEBFULLNAME="Trisquel GNU/Linux developers" export CODENAME=ecne export REVISION=12.0 -export RELEASE=cmxsl -export DOMAIN=cmxsl.org +export RELEASE=trisquel +export DOMAIN=trisquel.info export UPSTREAM=noble export UPSTREAMRELEASE=24.04 -MIRROR=http://archive.ubuntu.com/ubuntu/ +MIRROR=http://mirrors.ocf.berkeley.edu/ubuntu/ LOCALMIRROR=http://archive.trisquel.org/trisquel -GIT_TPH_REPO=https://git.cmxsl.org/CMXSL.org/package-helpers-cmxsl -LOCAL_APT=`mktemp -d` +GIT_TPH_REPO=https://gitlab.trisquel.org/trisquel/package-helpers +LOCAL_APT=`mktemp -d` if [[ "$PACKAGE" =~ ^linux(-hwe-[0-9]+\.[0-9]+)?$ && -n "$LP_VERSION" ]]; then # Function to truncate the version string to the major version (e.g., 6.5.0) truncate_version() { @@ -64,7 +64,6 @@ LP_DIFF_FILE="${PACKAGE}_${LP_VERSION}.diff.gz" LP_DSC_FILE="${PACKAGE}_${LP_VERSION}.dsc" fi -echo -e "> $PACKAGE helper build started - $(date -R)\n" if [ -n "$BUILD_UNTIL" ] && (( $(echo "$BUILD_UNTIL $REVISION" | awk '{print ($1 > $2)}') )); then echo "Skipping build of helper with BUILD_UNTIL=$BUILD_UNTIL > REVISION=$REVISION" exit 0 @@ -89,7 +88,7 @@ head -n 1 debian/changelog | grep -q $UPSTREAM-security && REPO=$CODENAME-securi echo | dch -D $REPO -v $FULLVERSION "$1" # Make sure the changelog file is identical between archs -/bin/sed "/-- Desarrollo/s/.*/ -- Desarrollo CMXSL $DATE/" -i debian/changelog +/bin/sed "/-- Trisquel/s/.*/ -- Trisquel GNU\/Linux developers $DATE/" -i debian/changelog } @@ -196,7 +195,7 @@ cd source UPSTREAMVERSION=$(dpkg-parsechangelog --show-field Version) -export FULLVERSION=$(dpkg-parsechangelog --show-field Version)cmxsl${VERSION} +export FULLVERSION=$(dpkg-parsechangelog --show-field Version)trisquel${VERSION} # Use 3.0 (native) deb source format [ -f debian/source/format ] && echo "3 (native)" > debian/source/format @@ -221,7 +220,7 @@ cd .. mv source $PACKAGE-$FULLVERSION dpkg-source -b -I.falsefileextension99 $PACKAGE-$FULLVERSION rm -rf ${LOCAL_APT} -echo -e "> CMXSL source package built! - $(date -R)\n" +echo -e "Trisquel source package built! - $(date -R)\n" notify_found_distro_match_on_debian_rules } diff --git a/helpers/make-cron b/helpers/make-cron index 1b70b03..3f6c3de 100644 --- a/helpers/make-cron +++ b/helpers/make-cron @@ -17,14 +17,15 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=2 -BUILD_UNTIL=12 +VERSION=1 . ./config -patch_p1 $DATA/license-info-fix.patch +rm debian/examples/crontab2english.pl -changelog "Corrected license info (package-helpers issue #199)" +sed '/crontab2english.pl/,/License: Artistic/d;/License: Artistic/,/common-licenses/d' -i debian/copyright + +changelog "Removed non-free example #10868" package diff --git a/helpers/make-dia b/helpers/make-dia deleted file mode 100644 index fcaee2b..0000000 --- a/helpers/make-dia +++ /dev/null @@ -1,30 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2025 Luis Guznán -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -VERSION=1 - -. ./config - -apply_patch_changes -# See more at: https://gitlab.gnome.org/GNOME/dia/-/merge_requests/114 - -changelog "Apply MR 114 on GNOME to fix delay to open text properties" - -package - diff --git a/helpers/make-firefox b/helpers/make-firefox index 9571bc2..cd08ae0 100644 --- a/helpers/make-firefox +++ b/helpers/make-firefox @@ -19,7 +19,7 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -VERSION=123 +VERSION=122 EXTERNAL='deb-src http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu $UPSTREAM main' REPOKEY=9BDB3D89CE49EC21 diff --git a/helpers/make-kolourpaint b/helpers/make-kolourpaint deleted file mode 100644 index 279e8f5..0000000 --- a/helpers/make-kolourpaint +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/sh -# -# Copyright (C) 2025 Luis Guzmán -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -# - -VERSION=1 -. ./config - -apply_patch_changes - -changelog "Set icon theme recommendation for non-KDE environments" - -package diff --git a/helpers/make-llvm-toolchain-19 b/helpers/make-llvm-toolchain-19 index 81c50f7..e5890be 100644 --- a/helpers/make-llvm-toolchain-19 +++ b/helpers/make-llvm-toolchain-19 @@ -18,7 +18,7 @@ # VERSION=1 -EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu $UPSTREAM universe' +EXTERNAL='deb-src http://archive.ubuntu.com/ubuntu $UPSTREAM main universe' BACKPORTS=true . ./config diff --git a/helpers/make-ubuntu-release-upgrader b/helpers/make-ubuntu-release-upgrader index 191cfce..c0980e5 100644 --- a/helpers/make-ubuntu-release-upgrader +++ b/helpers/make-ubuntu-release-upgrader @@ -1,6 +1,5 @@ #!/bin/sh # -# Copyright (C) 2025 Luis Guzmán # Copyright (C) 2008-2024 Ruben Rodriguez # Copyright (C) 2014 Santiago Rodriguez # Copyright (C) 2019 Mason Hock @@ -25,20 +24,13 @@ # Also, don't forget to update the meta-release files at archive and packages.t.i # The "obsoletes" list from ubuntu has been removed -VERSION=16.1 +VERSION=16 . ./config -# Previous upstream release name, update for each release. -PREV_UPS_REL=jammy -PREV_TRIS_REL=aramo -# Use git Mirrors.masterlist as source. -Mirrors_masterlist=$(mktemp) -Mirrors_masterlist_git="trisquel-packages/-/raw/master/extra/mirrors/Mirrors.masterlist" -TPH_GIT_URL="https://gitlab.trisquel.org/trisquel/package-helpers/" # Fix PEP440 version compatibility # https://salsa.debian.org/debian/distro-info/-/commit/e2877dc44659d034155495e91976874c209a3c02 -patch_p1 $DATA/pep440.patch +patch --no-backup-if-mismatch -Np1 < $DATA/pep440.patch #%FSDG: Remove functions to deal with proprietary drivers rm ./DistUpgrade/xorg_fix_proprietary.py @@ -234,11 +226,25 @@ trisquel-release-upgrader-core EOF rm data/mirrors.cfg -# https://gitlab.trisquel.org/trisquel/trisquel-packages/-/tree/master/extra/mirrors -# FIXME: Propose a way to integrate from git and avoid fetching via wget/curl. -wget https://gitlab.trisquel.org/trisquel/$Mirrors_masterlist_git -o /dev/null -O $Mirrors_masterlist -python3 $DATA/../python-apt/parse-mirror-masterlist.py $Mirrors_masterlist|grep https|sort > data/mirrors.cfg -rm $Mirrors_masterlist +#https://mirmon.trisquel.org/conf.txt +cat << EOF > data/mirrors.cfg +https://archive.trisquel.info/trisquel/ +https://archive.trisquel.org/trisquel/ +https://mirror.fsf.org/trisquel/ +https://mirror.cedia.org.ec/trisquel.packages/ +https://mirrors.ustc.edu.cn/trisquel/ +https://ftp.caliu.cat/pub/distribucions/trisquel/packages/ +https://ftp.acc.umu.se/mirror/trisquel/packages/ +https://mirrors.ocf.berkeley.edu/trisquel/ +https://mirror.librelabucm.org/trisquel/ +https://mirror.linux.pizza/trisquel/packages/ +https://quantum-mirror.hu/mirrors/pub/trisquel/packages/ +https://mirror.csclub.uwaterloo.ca/trisquel/packages/ +https://ftpmirror1.infania.net/mirror/trisquel/packages/ +https://mirrors.nju.edu.cn/trisquel/ +https://mirror.math.princeton.edu/pub/trisquel-packages/ +https://mirrors.dotsrc.org/trisquel/ +EOF replace changelogs.ubuntu.com packages.trisquel.org . @@ -282,23 +288,16 @@ rpl noble ecne . -R rm data/DistUpgrade.cfg* cp $DATA/DistUpgrade.cfg* data/ -cat << EOF | tee -a utils/demoted.cfg utils/demoted.cfg.$PREV_UPS_REL +cat << EOF >> data/demoted.cfg notification-daemon resolvconf eom -desktop-common EOF -for i in utils/demoted.cfg utils/demoted.cfg.$PREV_UPS_REL -do - sort -o $i $i -done -mv data/demoted.cfg.$PREV_UPS_REL data/demoted.cfg.$PREV_TRIS_REL - -sed -i "s|the command .ubuntu-bug ubuntu-release-upgrader-core. in a terminal|$TPH_GIT_URL|" DistUpgrade/DistUpgradeCache.py -replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "${TPH_GIT_URL}-/issues" . -replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader" "$TPH_GIT_URL" . -replace "https*://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "${TPH_GIT_URL}-/issues" . +sed 's|.ubuntu-bug ubuntu-release-upgrader-core. in a terminal|https://gitlab.trisquel.org/trisquel/package-helpers in a browser.|' DistUpgrade/DistUpgradeCache.py -i +replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "https://gitlab.trisquel.org/trisquel/package-helpers/-/issues" . +replace "https*://launchpad.net/ubuntu/+source/ubuntu-release-upgrader" "https://gitlab.trisquel.org/trisquel/package-helpers/" . +replace "https*://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+filebug" "https://gitlab.trisquel.org/trisquel/package-helpers/-/issues" . find -type f |xargs rename 's/ubuntu-release-upgrader/trisquel-release-upgrader/g' replace "ubuntu-release-upgrader" "trisquel-release-upgrader" . mv kubuntu-devel-release-upgrade triskel-devel-release-upgrade @@ -326,28 +325,12 @@ rpl "main restricted" "main" DistUpgrade -R replace Ubuntu Trisquel replace Canonical Trisquel replace "https*://www.ubuntu.com/" "https://trisquel.info" . -replace "https*://wiki.ubuntu.com/X/Bugs/" "${TPH_GIT_URL}-/issues" . +replace "https*://wiki.ubuntu.com/X/Bugs/" "https://gitlab.trisquel.org/trisquel/package-helpers/-/issues" . replace "https*://wiki.ubuntu.com/" "https://trisquel.info/wiki" . replace "https*://help.ubuntu.com/community" "https://trisquel.info/wiki" . -/bin/sed -i \ - -e 's/kubuntu/triskel/g' \ - -e 's/xubuntu/trisquel-mini/g' \ - -e 's/�~Lubuntu/�~Ltrisquel/g' \ - -e 's/被ubuntu/被trisquel/g' \ - -e "s#http://launchpad.net/ubuntu/+source/%s/%s/+changelog#$TPH_GIT_URL#g" \ - -e 's/<.*@ubuntu.com/>>Site replacement needs fixing, exiting...<<<\n" && exit -apply_patch_changes - changelog "Remove explicit site listing, redirecting to website author." package