SHA256
1
0
forked from pool/mp

8 Commits

Author SHA256 Message Date
f2730f10e2 Accepting request 1281900 from editors
OBS-URL: https://build.opensuse.org/request/show/1281900
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mp?expand=0&rev=6
2025-06-02 20:01:13 +00:00
Martin Pluskal
898d87fd7f Add reproducibledocs.patch and reproducibletar.patch to make package build reproducible
Please try to upstream patches at https://github.com/ttcdt/mp-5.x

OBS-URL: https://build.opensuse.org/package/show/editors/mp?expand=0&rev=14
2025-06-02 12:22:13 +00:00
207b12affc Accepting request 1281172 from editors
OBS-URL: https://build.opensuse.org/request/show/1281172
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mp?expand=0&rev=5
2025-05-30 12:38:12 +00:00
Martin Pluskal
eb66793208 - update to 5.62
- build w/ qt6 instead of qt5

OBS-URL: https://build.opensuse.org/package/show/editors/mp?expand=0&rev=12
2025-05-29 15:03:59 +00:00
b24f3515a2 Accepting request 1228179 from editors
- Modernise spec file and remove obsolete rpmlintrc filters 
- Do not use source urls for download as they are not available
  anymore

- Add mp-scrollevent.patch to fix type issue found by gcc14 compile
  time error.

OBS-URL: https://build.opensuse.org/request/show/1228179
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mp?expand=0&rev=4
2024-12-04 14:27:38 +00:00
Martin Pluskal
6c3253cf33 - Do not use source urls for download as they are not available
anymore

OBS-URL: https://build.opensuse.org/package/show/editors/mp?expand=0&rev=10
2024-12-04 08:27:38 +00:00
Martin Pluskal
b1a413b870 - Modernise spec file and remove obsolete rpmlintrc filters
OBS-URL: https://build.opensuse.org/package/show/editors/mp?expand=0&rev=9
2024-12-04 08:24:15 +00:00
Martin Pluskal
27aeb8607e add mp-scrollevent.patch to fix gcc14 compile error
OBS-URL: https://build.opensuse.org/package/show/editors/mp?expand=0&rev=8
2024-12-04 08:18:06 +00:00
23 changed files with 1074 additions and 64506 deletions

3
grutatxt.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:823beeca2d2edf31d6c9320c8e460b9aede90e004078aef6e35be77d5de0b843
size 20751

View File

@@ -1,10 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
GenericName=Text Editor
Name=Minimum Profit (GTK+3 version)
MimeType=text/plain;
Exec=mp-5-gtk3 %U
Icon=mp-5
Type=Application
Terminal=false
Categories=GTK;TextEditor;

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be1c486657105a6cdb0b2fc4c1efdee93f1f63aeec42ab6b1c0d97ba7a891c58
size 512269

View File

@@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iHEEABECADEWIQQg4w2h98nE3MPhGDhDDuMZQjiouAUCWpRAARMcYW5nZWxAdHJp
cHRpY28uY29tAAoJEEMO4xlCOKi4eKUAn360C01H26R/q0U1+CP2lsbtvOqBAKCb
IY+puFasmkoRTdFr1Lwg67FFtQ==
=vrEl
-----END PGP SIGNATURE-----

View File

@@ -0,0 +1,15 @@
fix unconditional setting of WITHOUT_MSGFMT that results in always
building without msgfmt
--- a/config.sh 2024-12-07 08:52:47.000000000 +0100
+++ b/config.sh 2025-05-27 13:20:44.129796033 +0200
@@ -25,7 +25,7 @@
WITHOUT_KDE4=1
# No msgfmt by default
-WITHOUT_MSGFMT=1
+WITHOUT_MSGFMT=${WITHOUT_MSGFMT:=1}
WITH_EXTERNAL_ARCH=0

21
mp-5.62-config-qt6.patch Normal file
View File

@@ -0,0 +1,21 @@
Qt5 is out of support as of 2025-05-26. usage of Qt in mp sources
seems simple enough to just replace Qt5Widgets by Qt6Widgets.
Older Qt6Widgets.pc files are missing "Requires: Qt6Core Qt6Gui".
--- a/config.sh 2024-12-07 08:52:47.000000000 +0100
+++ b/config.sh 2025-05-26 10:23:37.309979419 +0200
@@ -449,10 +449,10 @@
if [ "$WITHOUT_QT5" = "1" ] ; then
echo "Disabled"
else
- if chk_pkgconfig Qt5Widgets
+ if chk_pkgconfig Qt6Widgets
then
- TMP_CFLAGS="$(${PKG_CONFIG} --cflags Qt5Widgets 2>/dev/null) -fPIC"
- TMP_LDFLAGS="$(${PKG_CONFIG} --libs Qt5Widgets 2>/dev/null)"
+ TMP_CFLAGS="$(${PKG_CONFIG} --cflags Qt6Widgets Qt6Core Qt6Gui 2>/dev/null) -fPIC"
+ TMP_LDFLAGS="$(${PKG_CONFIG} --libs Qt6Widgets Qt6Core Qt6Gui 2>/dev/null)"
if USE_CXX=true chk_compiles "$(cat <<EOF
#include <QtWidgets>

40
mp-5.62-installdirs.patch Normal file
View File

@@ -0,0 +1,40 @@
fix / adapt installation directories to opensuse habits
--- a/makefile.in 2024-12-07 08:52:47.000000000 +0100
+++ b/makefile.in 2025-05-26 13:26:01.945038290 +0200
@@ -141,22 +141,24 @@
install -m 644 $(ARCH_FILE) $(PREFIX)/share/$(APPNAME)/ || true
install: $(INSTALL_MSG) installdoc $(INSTALLMO) $(MORE_INSTALL_TARGETS)
+ ./mkinstalldirs -m 755 $(PREFIX)/bin
install -m 755 $(APPNAME) $(PREFIX)/bin/$(APPNAME)
- ./mkinstalldirs $(PREFIX)/share/man/man1
+ ./mkinstalldirs -m 755 $(PREFIX)/share/man/man1
[ -f $(APPNAME).1 ] && install -m 644 $(APPNAME).1 $(PREFIX)/share/man/man1/$(APPNAME).1 || true
- [ -d /usr/share/applications ] && install -m 644 minimum-profit.desktop /usr/share/applications || true
- [ -d /usr/share/metainfo ] && install -m 644 metainfo.xml /usr/share/metainfo/com.triptico.minimum_profit.metainfo.xml || true
- [ -d /usr/share/icons/hicolor/48x48/apps/ ] && install -m 644 minimum-profit.png /usr/share/icons/hicolor/48x48/apps/ || true
+ ./mkinstalldirs -m 755 $(PREFIX)/share/applications
+ install -m 644 minimum-profit.desktop $(PREFIX)/share/applications
+ ./mkinstalldirs -m 755 $(PREFIX)/share/metainfo
+ install -m 644 metainfo.xml $(PREFIX)/share/metainfo/com.triptico.minimum_profit.metainfo.xml
+ ./mkinstalldirs -m 755 $(PREFIX)/share/icons/hicolor/48x48/apps
+ install -m 644 minimum-profit.png $(PREFIX)/share/icons/hicolor/48x48/apps
installdoc:
- ./mkinstalldirs $(PREFIX)/share/doc/$(APPNAME)
- chmod 755 $(PREFIX)/share/doc/
- chmod 755 $(PREFIX)/share/doc/$(APPNAME)
+ ./mkinstalldirs -m 755 $(PREFIX)/share/doc/packages/$(APPNAME)
( cd $(MPDM); $(MAKE) installdoc )
( cd $(MPSL); $(MAKE) installdoc )
- install -m 644 doc/* $(PREFIX)/share/doc/$(APPNAME)
- install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/$(APPNAME)
- [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/$(APPNAME)/index.html || true
+ install -m 644 doc/* $(PREFIX)/share/doc/packages/$(APPNAME)
+ install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/packages/$(APPNAME)
+ [ -f doc/mp_index.html ] && install -m 644 doc/packages/mp_index.html $(PREFIX)/share/doc/packages/$(APPNAME)/index.html || true
uninstall: $(UNINSTALLMO)
rm -f $(PREFIX)/bin/$(APPNAME)

14
mp-5.62-mpdm-config.patch Normal file
View File

@@ -0,0 +1,14 @@
fix failing mp_doccer detection
--- a/mpdm/config.sh 2024-12-07 08:52:47.000000000 +0100
+++ b/mpdm/config.sh 2025-05-26 22:59:11.465842766 +0200
@@ -657,7 +657,7 @@
# test for mp_doccer
echo -n "Testing if mp_doccer is installed... "
-MP_DOCCER=$(which mp_doccer > /dev/null 2>&1||which mp-doccer > /dev/null 2>&1)
+MP_DOCCER=$(which mp_doccer 2>/dev/null || which mp-doccer 2>/dev/null)
if [ $? = 0 ] ; then

View File

@@ -0,0 +1,23 @@
fix building of doc/mpsl_quickref.ps, and add it to docsclean target
--- a/mpsl/makefile.in 2024-12-07 08:52:47.000000000 +0100
+++ b/mpsl/makefile.in 2025-05-26 17:09:43.643633225 +0200
@@ -78,7 +78,7 @@
.txt.html:
grutatxt < $< > $@
-doc/mpsl_quickref.ps: doc/mpsl_quickref.txt
+doc/mpsl_quickref.ps: doc/mpsl_quickref.txt mpsl
-./mpsl scripts/mkquickref.mpsl < doc/mpsl_quickref.txt > $@
doc/mpsl_api.txt: mpsl_c.c mpsl.y
@@ -96,7 +96,7 @@
docs: $(DOCS)
docsclean:
- rm -f $(MP_DOCCER_DOCS) doc/*.html
+ rm -f $(MP_DOCCER_DOCS) doc/*.html doc/*.ps
distcopy: distclean
mkdir -p $(DIST_TARGET) ; \

14
mp-5.62-qt6-isnull.patch Normal file
View File

@@ -0,0 +1,14 @@
fix test that still worked in Qt5 but does not in Qt6
--- a/mpv_qk_common.cpp 2024-12-07 08:52:47.000000000 +0100
+++ b/mpv_qk_common.cpp 2025-05-26 10:39:15.220655492 +0200
@@ -70,7 +70,7 @@
{
mpdm_t r = NULL;
- if (s != NULL) {
+ if (!s.isNull()) {
int t = s.size();
wchar_t *wptr = (wchar_t *) calloc((t + 1), sizeof(wchar_t));

39
mp-5.62-qt6-weight.patch Normal file
View File

@@ -0,0 +1,39 @@
reflect Qt6 changes to QFont::Weight enumeration and setWeight()
--- a/mpv_qk_common.cpp 2024-12-07 08:52:47.000000000 +0100
+++ b/mpv_qk_common.cpp 2025-05-28 16:10:32.584350324 +0200
@@ -168,10 +168,16 @@
else
mpdm_set_wcs(c, MPDM_I(font_size), L"font_size");
+#if QT_VERSION_MAJOR<6
+#define WEIGHT_FACTOR 100.0
+#else
+#define WEIGHT_FACTOR 1000.0
+#endif
+
if ((v = mpdm_get_wcs(c, L"font_weight")) != NULL)
- font_weight = mpdm_rval(v) * 100.0;
+ font_weight = mpdm_rval(v) * WEIGHT_FACTOR;
else
- mpdm_set_wcs(c, MPDM_R(font_weight / 100.0), L"font_weight");
+ mpdm_set_wcs(c, MPDM_R(font_weight / WEIGHT_FACTOR), L"font_weight");
if ((v = mpdm_get_wcs(c, L"font_face")) != NULL) {
w = mpdm_ref(MPDM_2MBS(mpdm_string(v)));
@@ -187,7 +193,14 @@
font->setFixedPitch(true);
if (font_weight > 0.0)
+ {
+#if QT_VERSION_MAJOR<6
font->setWeight((int) font_weight);
+#else
+ if (font_weight < 1.0) { font_weight = 1.0; }
+ font->setWeight(static_cast<QFont::Weight>(font_weight));
+#endif
+ }
mpdm_unref(w);

748
mp-5.62-releasenotes.patch Normal file
View File

@@ -0,0 +1,748 @@
release notes for versions prior to 5.31, cf. github.com/rofl0r/mp-5.x
--- a/RELEASE_NOTES 2024-12-07 08:52:00.000000000 +0100
+++ b/RELEASE_NOTES 2025-05-27 16:07:11.957738688 +0200
@@ -562,3 +562,742 @@
The ANSI driver now accepts alt-letter keycodes.
The execute MPSL code function always dumps its output to the dump window.
+
+5.3.0
+-----
+
+ - Architectural changes:
+ - Major refactoring; old code pruned and cleaned, memory
+ management improved.
+ - MPSL code is no longer deployed as separate files, but
+ embedded in a tar file or inside the program binary itself.
+ - Some MPSL code is loaded on demand.
+ - New "portable" (i.e. no installation needed) versions for
+ MS Windows.
+ - New features:
+ - New action `insert_m_dash', bound by default to `alt-minus'.
+ - New action `replace_tabs_with_spaces'.
+ - New action `replace_spaces_with_tabs'.
+ - New action `open_recent', to pick the file to open from
+ the previosly opened ones.
+ - Other changes:
+ - Versioning have changed from x.x.x to x.yyy.
+ - The coloring theme for GUI drivers has changed to something
+ with dark background and softer colors. If you want to revert
+ the classic, bright colors on white background theme, copy
+ and paste the following into the configuration file:
+
+ /* Minimum Profit Classic */
+ mp.colors.normal.gui = [ 0x000000, 0xffffff ];
+ mp.colors.cursor.gui = mp.colors.normal.gui;
+ mp.colors.selection.gui = [ 0xff0000, 0xffffff ];
+ mp.colors.comments.gui = [ 0x00cc77, 0xffffff ];
+ mp.colors.documentation.gui = [ 0x8888ff, 0xffffff ];
+ mp.colors.quotes.gui = [ 0x0000ff, 0xffffff ];
+ mp.colors.matching.gui = [ 0x000000, 0xffff00 ];
+ mp.colors.word1.gui = [ 0x00aa00, 0xffffff ];
+ mp.colors.word2.gui = [ 0xff6666, 0xffffff ];
+ mp.colors.word3.gui = [ 0x000088, 0xffffff ];
+ mp.colors.tag.gui = [ 0x8888ff, 0xffffff ];
+ mp.colors.spell.gui = [ 0xff8888, 0xffffff ];
+ mp.colors.search.gui = [ 0x000000, 0x00cc77 ];
+
+5.2.15
+------
+
+ - Fixes:
+ - A severe bug in the GTK driver. Sometimes comboboxes
+ in forms do not correctly show the default value. This
+ can be specially troublesome in the "Line options"
+ form because the end-of-line separator can be
+ accidentally set to an empty string and destroy
+ newly created files.
+
+5.2.14
+------
+
+ - Fixes:
+ - In Qt5, as there is no equivalent of Qt4's
+ QApplication() creator with an X11 Display object as
+ argument, there is no other way of detecting a
+ non-functioning X11 environment than checking the
+ existence of the DISPLAY environment variable, so that
+ is what is used to fall back to text mode.
+ - Cancellation of the opening of hexadecimal dumps
+ works again.
+ - The "git checkout" option in the VCS has been removed,
+ as I keep constantly hitting it by error.
+ - The `scroll_up' and `scroll_down' actions has been
+ swapped, so they make much more sense.
+ - After a word-wrapping is done, the horizontal visual
+ column is set to 0, as it's expected to do.
+ - Makefile output is left at the end of the file (where
+ fail / success information is most probably found instead
+ of the beginning of the file).
+ - GTK driver uses GDK_SELECTION_CLIPBOARD instead of
+ GDK_SELECTION_PRIMARY for copy / paste.
+ - GTK form lists are correctly scrolled to show the
+ selected item.
+ - Text in GTK is correctly copied to the clipboard as
+ utf-8 encoded.
+- New features:
+ - A new `export_as_rtf' action, to write current text
+ as a very basic RTF file. Words surrounded by asterisks
+ are written as strong text and surrounded by underscores
+ as emphasized text. Also, form feeds (ascii 0C) are
+ converted to page breaks.
+ - A new `insert_page_break' action, to insert an ASCII
+ page break character (FF, 0x0C).
+
+5.2.13
+------
+
+ - New features:
+ - This release includes Qt5 support.
+
+5.2.12
+------
+
+ - New features:
+ - This version includes a new driver for raw ANSI terminals,
+ for systems who don't (want to) have libncursesw.
+ - The cursor position for every file is remembered from
+ session to session.
+ - Fixed bugs:
+ - Fixed action `open_under_cursor' (again).
+ - Fixed behaviour inconsistency between actions `seek' and
+ `seek-next'.
+ - Fixed action `sync' (save all modified files).
+ - Other features:
+ - Version numbering convention has changed: development
+ versions shall no longer have (CURRENTVERSION+1)-dev,
+ but (CURRENTVERSION)-patch.
+
+5.2.11
+------
+
+ - This version includes the following lot of features by
+ fellow developer X-Ryl669:
+ - New cut line action (copy and delete line), bound by
+ default to ctrl-k.
+ - New key assignation to document list (ctrl-e).
+ - Fix ncurses detection for recent distributions.
+ - Added suspension (bound to ctrl-l) for curses driver.
+ - Added word selection with mouse double-click.
+ - Paste in ncurses prompt.
+ - New seek matching brace feature, bound to ctrl-j.
+ - Text search wraps to the top of the document as many
+ other text editors do.
+ - Several miscellaneous fixes.
+ - Other features:
+ - Window position and size is saved in all GUI interfaces.
+
+5.2.10
+------
+
+ - New features:
+ - New configuration directive mp.config.show_line_numbers,
+ to show line numbers to the left of each line.
+
+5.2.9
+-----
+
+ - New features:
+ - New configuration directive mp.config.emacs_scrolling, to
+ enable/disable emacs-like scrolling (half screen jumps
+ instead of line-by-line).
+ - New actions `scroll_up' and `scroll_down', bound by
+ default to `alt-cursor-up' and `alt-cursor-down'.
+ - New syntax highlight for JSON files.
+
+5.2.8
+-----
+
+ - New features:
+ - Mouse support on text interfaces (it can be disabled by
+ setting mp.config.no_text_mouse to 1).
+ - Support for the MS Windows console. Two win32 binaries are
+ now deployed: the classic, windowed mp-5.exe and the new,
+ console-based, mp-5c.exe.
+ - Added column to action `grep'.
+
+5.2.7
+-----
+
+ - New features:
+ - File format dependent build targets (to be used if a Makefile
+ is not found in the current directory).
+ - `open_under_cursor' also works over diff file marks (those
+ starting with @@).
+ - New configuration directive `make_opts', for command line
+ options to be added to `make'.
+ - Search and replace accepts Unicode chars in \x{HHHH} format.
+ - The status line format string can also include the %u token
+ to show the Unicode codepoint of the character under the cursor.
+ - Fixed bugs:
+ - Fixed hexdump search.
+ - Avoid having zero-size marks.
+
+5.2.6
+-----
+
+ - Fixed grep.
+
+5.2.5
+-----
+
+ - New features:
+ - Hex view is searchable.
+ - New syntax highlight for JavaScript.
+ - Fixed bugs:
+ - Avoid crashes in `play_macro' action.
+ - Fixed failing menus on Qt4.
+ - Fixed file renaming errors in the directory editor.
+ - Important changes:
+ - Default tab settings has been changed to convert to 4 spaces.
+
+5.2.4
+-----
+
+ - New features:
+ - A new directory editor, linked to the new `open_folder'
+ action, that allows file deletion and renaming.
+ - New configuration directive `font_weight'.
+ - New action `insert_time_stamp', that inserts the current
+ timestamp according to the format in the
+ `mp.config.time_stamp_format' configuration directive.
+ - Changes:
+ - mp.add_keyseq() has been reimplemented and no longer needs
+ the initial [, as it already assumes it's used only for ANSI
+ sequences (so you may need to tweak your own definitions).
+ - Fixes:
+ - Dynamic tab tweking.
+ - Avoid hangups when trying to highlight 0 size regexes.
+ - Minor VCS fixes.
+ - Revert can be undone.
+
+5.2.3
+-----
+
+ - New improvements:
+ - New actions `move_section_up' and `move_section_down'
+ (bound by default to `alt-cursor-up' and `alt-cursor-down').
+ - VCS commands can have a common or private log.
+ - The menu has been reorganized.
+ - Keycode targets can also be other keycodes (not only editor
+ actions), so they can be used as aliases.
+ - Encodings are now selected from a list.
+ - The Curses interface now includes a read-only scrollbar.
+ - A much faster hexadecimal viewer.
+ - Other changes:
+ - Al MP code has been refactored to use new MPSL object-oriented
+ capabilities.
+
+5.2.2
+-----
+
+ - Major improvements:
+ - Added Version Control commands (bound by default to `ctrl-p').
+ The supported systems are (adding new ones is very easy):
+ - Git
+ - Subversion
+ - Mercurial
+ - If any file being edited is modified externally, the situation
+ is detected and the user is prompted for file reloading.
+ - GTK library detection: Uses 3.x if available, then 2.x.
+ - Special information gathering on help: if the file being edited
+ is C/C++ and asking for help (by pressing `F1') do not return
+ a `man' page, a special routine inspects all source files and
+ headers looking for structures, variables and function prototypes
+ to be shown as help.
+ - If a template name starts with #!, the template body is assumed
+ to be MPSL code, that will be executed and its value returned
+ as the template to be inserted.
+ - New "Pipes" game.
+ - New `check_for_updates' action.
+ - Fixed bugs:
+ - Make `keep_eol' behaviour more intuitive (bug #1294).
+
+5.2.1
+-----
+
+ - New actions:
+ - `indent_block': Indents the current line or the selected block.
+ - `unindent_block': Reverse of `indent_block'.
+ - New features:
+ - ~/.mp_templates can be a directory. If it is, the `global' file
+ there is always read (and those templates put at the top) and it
+ will also read a file named like the current syntax highlight
+ definition (so different templates appear if your editing C, Perl,
+ etc.).
+ - New configuration options:
+ - `mp.config.smart_bol': if set to nonzero, the `move_bol' action
+ now moves to the first non-blank character in the line instead of
+ to column 0 (unless the cursor is already on the first non-blank).
+ - Other improvements:
+ - The following actions accept additional arguments when called
+ as functions (and do not ask for them, if present):
+ - `goto'
+ - `save_as'
+ - `exec_command'
+ - `filter_selection'
+
+5.2.0
+-----
+
+ - New actions:
+ - `filter_selection': to filter the selection (or the
+ full document if no selection is done) through a system command.
+ - `exec_action': that shows a list of actions to execute
+ on the current document.
+ - `cut_lines_with_string': that cuts to the clipboard all lines
+ in a document or block that matches a regular expression.
+ - `insert_real_tab': bound to `shift-tab', to insert a tab
+ character (\t) regardless of whatever is set in the
+ `tabs_as_spaces' configuration variable.
+ - `insert_next_item': to insert a new enumeration item in
+ a document.
+ - Bugfixes:
+ - Fixed insert / overwrite mode.
+ - If a selection is invisible (incomplete or with the start and end
+ in the same character), a new keystroke does not jump to it.
+ - New configuration options:
+ - `mp.config.hw_cursor': to activate the hardware cursor in
+ text environments (disabled by default).
+ - Text user interface improvements:
+ - File opening list is fully navegable (directories up and down),
+ - Selection lists accept letter keys to jump to elements,
+ - If a text mode menu panel do not fit vertically on the screen,
+ menu items are scrolled as needed.
+ - New command line options:
+ - `-txt': force text mode (instead of GUI).
+ - General improvements:
+ - If a block is selected, actions `word_wrap_paragraph',
+ `join_paragraph' and `eval_doc' act only on it.
+ - The internal engine has been partly rewritten, so it requires
+ less memory and it's a bit faster.
+
+5.1.4
+-----
+
+ * If a block is selected, any keystroke substitutes it.
+ * Support for Alt + keys (ASCII and movement) has been added,
+ and mostly left unbound to be used by the user for his own
+ keybindings.
+ * A new tab mode, which uses the previous line as a template
+ for tab columns.
+ * Fixed action `open_under_cursor'.
+ * The `mp.paste()' function returns the clipboard content
+ as a string if called without arguments.
+ * New Grutatxt syntax highlighter.
+ * Fix F10 in Win32.
+ * Fix a bug when calculating the drawing position in the
+ selected block, that were leading to crashes.
+
+5.1.3
+-----
+
+ * A new Qt4 driver (adapted from the KDE4 driver).
+ * A new hexadecimal viewer.
+ * New action `open_dropped_files', to open files dropped from
+ the underlying system GUI.
+ * Improved file encoding autodetection by looking at the
+ UTF BOM marks.
+ * New configuration option `keep_eol', to keep the original
+ end of line sequence each document had.
+ * Fixed some clipboard issues, as replacing the selected block
+ when pasting and some crashes.
+ * win32 executable has been renamed to `mp-5.exe'.
+ * The status line format string can also include the %e token
+ to show the encoding used by the document.
+ * Fixed win32 input processing in non-latin environments.
+ * Setting an empty encoding (to fall back to system defaults)
+ always work.
+
+5.1.2
+-----
+
+ * The `grep' action can now be recursive.
+ * New syntax color for special documentation blocks.
+ * Fix searching into empty selected blocks (this was bug #1269).
+ * New action `section_list', that shows a list of _sections_
+ in the current document to jump to. Sections are usually
+ function definitions and special marks in programming
+ languages.
+ * New action `seek_misspelled', to search the next
+ misspelled word. It has been assigned to keycode `f5'.
+ * New action `ignore_last_misspell', to add the last misspelled
+ word found by `seek_misspelled' to a whitelist so it won't
+ be found again.
+ * New action `seek_repeated_word', to search for words starting
+ or ending with the same number of letters up to a maximum
+ distance. It's controlled by the new configuration directives
+ `mp.config.rw_num_chars' and `mp.config.rw_max_dist'.
+ It has been assigned to keycode `f6' (this keycode was
+ previously assigned to `join_paragraph', which has no
+ keybinding now).
+ * The action `open_templates_file' has been fixed.
+ * Several GTK interface updates by fellow developer Sebastian Vöcking.
+ * New command line option `-d', to change the working directory.
+ * Several fixes to the win32 driver; word wrapping, combobox
+ drop-down sizes, underlined text.
+ * Avoid hanging if the external ispell program is broken.
+ * The `dump()' function now dumps its argument as MPSL code.
+
+5.1.1
+-----
+
+ * Internationalization works in all platforms (including KDE4,
+ were it was faulty, and win32, where it was non-existent since
+ the 3.x series).
+ * The status line format string can also include the %w token
+ to show the number of words in the current document or selection
+ (can be slow).
+ * Search and replace is now limited to the selected block, if any.
+
+5.1.0
+-----
+
+Fixes to the KDE4 driver:
+
+ * Underlined text works.
+ * Text fields in forms now have history.
+ * If no xserver can be contacted, fall back to the curses interface.
+
+5.1.0-rc1
+---------
+
+ * KDE4 support.
+ * Rectangular block copy/paste support.
+ * New syntax highlight for the Euphoria language.
+
+5.0.3
+-----
+
+ * New action `open_under_cursor', that picks the word in the
+ current document under the cursor, accepts it as a document
+ name and tries to open it. If it's in the format string:number,
+ is accepted as a file name and a line number. It's bound by
+ default to `ctrl-enter' (`alt-enter' under Curses).
+ * The `grep' action bevahaviour has changed; instead of in a form,
+ matches are shown in a read-only document that is only closed
+ explicitly. Each change can be moved to by using the new
+ `open_under_cursor' (`ctrl-enter' or `alt-enter') action shown above.
+ * In a similar way, the `build' action also shows its output in a
+ read-only document instead of a form that is not automatically closed,
+ making the browsing and editing of compilation errors more useful.
+ * Forms in the Curses driver have changed their look. All fields in a
+ form are shown simultaneously on screen. This is one step to close
+ bug #1249.
+ * A set of character encoding converters have been natively implemented,
+ improving those platforms where the 'iconv' library is not available
+ (i.e. Windows and old Unix systems). The available encodings can be
+ shown by executing
+
+ dump(EMBEDDED_ENCODINGS);
+
+5.0.2
+-----
+
+ * New option to mark end of line characters, with its associated
+ configuration directive (mp.config.mark_eol).
+ * The end of line string (mp.config.eol) is now system-dependent (so,
+ on win32, it's set by default to \r\n).
+ * Copy and paste on GTK has been fixed (this was bug #1205).
+ * Fixed some redrawing issues (bug #1236 and others).
+ * Ctrl-keys no longer fail on GTK (bug #1252).
+ * New document _Minimum Profit Action Reference_.
+ * New action `build', for building Makefile-based projects. See the
+ action reference for details.
+
+5.0.1
+-----
+
+ * Improved line edition in the Curses interface (full edition plus file
+ expansion using the `tab' key in open / save file prompts).
+ * Auto-indenting is temporarily disabled while pasting (bug #1250).
+ * New document _Minimum Profit Function Reference_ (contributed by Lee Page).
+
+5.0.0
+-----
+
+ * The search hit is highlighted.
+ * When invoked from the menu, the `record_macro' action dropped
+ the last key (bug #1245).
+ * A Curses configuration detection has been fixed that made
+ some things behave strangely, as the drop-down menu not
+ responding under some terminal configurations (bug #1247).
+ * The Curses menu no longer crashes if it doesn't fit on
+ the screen (bug #1195).
+ * The -f (execute script) command line argument really works
+ (bug #1240).
+ * New manual page (bug #1219) and README files (bug #1218).
+ * Updated documents, _MPSL Overview_ and _Minimum Profit Cookbook_.
+ * New documents, _Minimum Profit Data Model_ and
+ _Creating interactive dialog boxes_.
+
+5.0.0-rc3
+---------
+
+ * New session support. All open documents and its current position
+ can be stored / retrieved with the new `save_session' and
+ `load_session' actions. Two new configuration flags has
+ been added: `mp.config.auto_sessions', to automatically load / save
+ sessions, and `mp.config.local_sessions', to save sessions in the
+ currently active directory instead of in the home directory.
+ * Multiple key sequences for invoking actions (ala Emacs) are
+ now possible. To create them, just assign a hash to a keycode
+ instead of an action. For example, to assign the key sequence
+ Ctrl-x Ctrl-f to `open' and Ctrl-x Ctrl-s to `save', you can use
+
+ mp.keycodes['ctrl-x'] = {
+ 'ctrl-f' => 'open',
+ 'ctrl-s' => 'save'
+ };
+
+ * In the curses version, confirmations now have default values
+ (shown in brackets), activated with the ENTER key.
+ * New action `close_all', that closes all documents.
+
+5.0.0-rc2
+---------
+
+ * New `complete' action, that asks for completion on the current
+ word using any of the words found in the same document.
+ * New `redo' action, to revert undo operations.
+ * The global configuration file `/etc/mp.mpsl' is also executed.
+ * In the `replace' action, the substitution string can contain
+ the special character &, that will be replaced by the matched
+ string (as in the `sed' command line tool).
+
+5.0.0-rc1
+---------
+
+ * New support for translating key sequences into MP keycodes, mainly
+ for redefining ANSI sequences not supported by current terminfo /
+ termcap. For example, if your terminal sends the ANSI sequence [6;5~
+ whenever you press Ctrl+page down, you can add to your config file
+ the following line:
+
+ mp.add_keyseq("[6;5~", 'ctrl-page-down');
+
+ * A new `system_command' action, to pipe from and to system commands
+ (Closed bug #1120).
+ * A new `word_count' action, to count the number of lines and words
+ in a document (or in the selected block).
+ * Incorrect word wrapping has been fixed (Closed bug #1137).
+ * Search and replace expand backslashed characters like \n and \t
+ (Closed bug #1214).
+ * New timer functionality has been added; a user function can be called
+ each time a specified period of milliseconds have elapsed. If, for
+ example, you want to print a string on standard output each two
+ seconds, you can run
+
+ mp.timer(2000, sub { print("Hi, world!\n"); });
+
+5.0.0-pre1
+----------
+
+ * Password-protected files fully work.
+ * Moving to next / previous instance of character (bound to ctrl-page-down
+ and ctrl-page-up) works (Closed bug #1131).
+ * Files open MUCH faster.
+ * Selection can be done by pressing shift + any movement key (Closed bug #1182).
+ * Dialog boxes work under Windows 98 (Closed bugs #1196, #1197).
+ * Block selection can be done by dragging the mouse (Closed bugs #1200, #1201).
+ * New `grep' functionality (Closed bug #1116).
+ * New action `sync' (save all modified documents, closed bug #1206).
+ * New action `document_list' (show a box with all open documents, allowing
+ the selection of the active one; closed bug #1211).
+ * Translations ported from mp 3.x (closed bug #1169).
+ * Most syntax highlight definitions ported from mp 3.x (closed bug #1168).
+
+4.99.12
+-------
+
+ * The menu in the Curses interface has been (finally) implemented.
+ * Interfaces have changed internally; a new driver function, mp.drv.form()
+ serves as a dialog box generic generator, resulting in more useful queries
+ for data (for example, all data required for a `replace' operation is
+ queried in only one dialog box). The Curses implementation, though
+ functional, is still just a wrapper to the old interface functions
+ and fields are queried one-by-one (which is annoying). This is an example
+ of a call to mp.drv.form(); the r variable will contain an array of 5
+ elements (one per widget) containing the values, or NULL if user cancelled:
+
+ local r = mp.drv.form( [
+
+ /* a 'text' widget */
+ { 'label' => "Replace this:",
+ 'type' => 'text',
+ 'history' => 'search',
+ 'value' => 'THIS' },
+
+ /* another one */
+ { 'label' => "With:",
+ 'type' => 'text',
+ 'history' => 'replace',
+ 'value' => 'THAT' },
+
+ /* a 'password' widget */
+ { 'label' => 'Password:',
+ 'type' => 'password' },
+
+ /* a 'checkbox' widget */
+ { 'label' => "Case sensitive:",
+ 'type' => 'checkbox',
+ 'value' => mp.config.case_sensitive_search },
+
+ /* a 'list' widget */
+ { 'label' => 'All C files:',
+ 'type' => 'list',
+ 'list' => glob('*.c'),
+ 'value' => 10 }
+ ] );
+
+ * Password protecting files works (but they cannot be opened yet, so this
+ is far from useful, unless you use mp 3.x to open them).
+ * Case sensitivity in searches can be controlled with the new
+ config flag mp.config.case_sensitive_search.
+ * Replace (and global replace by use of the new config flag
+ `mp.config.global_replace') works.
+
+4.99.11
+-------
+
+ * Syntax highlight definition have changed (again, hopefully for the last
+ time). Definitions are now an array of attribute name / regexes in which
+ the order is significative.
+ * Template insertion works.
+ * Tag selection (open the file where a symbol is defined) works.
+ * Symbol completion (using tags) works.
+ * Closed bugs #1159, #1158, #1153, #1161.
+
+4.99.10
+-------
+
+ * A big advance in the Curses interface; alerts, confirmations, and open
+ file, save file, search and generic prompts are working. Still lacking
+ the selection lists (as the rest of interfaces) and the menu.
+ * Improved menus; if an invalid action is added to a menu, it's shown
+ followed by a ?; if a key is bound to that action, it's shown between
+ square brackets.
+ * For systems lacking iconv support (MS Windows), a crappy, ad-hoc utf-8
+ converter has been added. This means that hitting `escape' and typing
+ `encoding('utf-8');' makes reading and writing utf-8 encoded files
+ possible on every system.
+ * New action `join_paragraph', to join current paragraph all in one line.
+ * New action `word_wrap_paragraph', that re-word-wraps current paragraph.
+ Word wrapping must be set ('mp.config.word_wrap = number;') for this to
+ work.
+
+4.99.9
+------
+
+ * The GTK and win32 drivers now include a native open/save file dialog.
+ * Interactive help (help for the word under the cursor, triggered by
+ pressing `f1') works.
+ * The menu in GTK and win32 works.
+ * New icon!
+ * Some bugs that caused random crashes has been fixed.
+ * New action `exec-doc', that executes the active open document as
+ MPSL code.
+
+4.99.8
+------
+
+ * New configuration option `mp.config.tabs_as_spaces', to store tabs
+ as spaces.
+ * Each syntax highlight definition can contain an optional function
+ called detect() that receives the document as argument and can be used
+ to tailor special detection rules.
+ * A big part of the internal storage of colors and attributes have
+ been rewritten to make it more dynamic.
+ * Tag target for the word over the cursor is shown in the status line.
+ * Move word left works.
+ * Opening an already open file makes it the active one instead of
+ re-opening it.
+ * The `execute code' action has been remapped from `ctrl-f1' to escape.
+ * Spellchecking via ispell works (though it's SLOW!). Activate it by
+ hitting escape and typing:
+
+ mp.ispell(1);
+
+ * By default, files are now unlinked before (re)written. File permissions
+ and ownership are restored if available. This behaviour can be disabled
+ by setting `mp.config.unlink' to zero.
+ * The GTK driver drawing code has been optimized, so it's much more
+ responsive now.
+
+4.99.7
+------
+
+ * The `modified' flag of documents is maintained, so now closing files
+ with pending modifications ask for confirmation. Also, the %m status
+ line directive works (marking modified files with an asterisk).
+ * Flex and bison are no longer needed to build.
+ * The `close window' button in GUIs (win32 and GTK) now generate the
+ special keycode `close-window'.
+ * The `exit' action now closes all open documents, asking for saving
+ confirmation on those modified.
+ * Temporary versions of the `open' ans `save' actions (using
+ mp.drv.readline() instead of an ad-hoc open file dialog) have
+ been implemented.
+ * The GUI interfaces now can have their font preferences configured
+ by using mp.config.font_face and mp.config.font_size.
+ * The actions `zoom-in' and `zoom-out' (font size rescaling, bound to
+ `f11/f12' and `ctrl-kp-minus/ctrl-kp-plus') have been implemented.
+ * New mouse-related actions; `move-to-mouse-position', `move-mouse-wheel-up'
+ and `move-mouse-wheel-down'.
+
+4.99.6
+------
+
+This is an EXPERIMENTAL version for evaluation purposes only. There are
+many things that aren't implemented, others fail miserably and many more
+do it incorrectly. Basically, what is known to work is:
+
+ * Basic text editing fully works. I've been using it for six months or so
+ to maintain itself, and there has not been a crash in three months,
+ more or less.
+ * Scripting works fine (90% of Minimum Profit 5.x itself is implemented
+ in MPSL, its internal scripting language).
+ * Undo works fine. It's bound to ctrl-z.
+ * Works cleanly in an UTF-8 environment.
+
+I do development on the GTK version, so it's where it works best. The
+curses version lacks many of the interface (alerts, confirmations,
+asking for text, etc.), so it's barely usable. The win32 version seem
+to work, but it needs to be manually installed and probably need some
+tweaking.
+
+What it doesn't work:
+
+ * The dialogs to open or save a file by its name aren't implemented.
+ There are workarounds for this: files can be opened from the command
+ line and save works correctly if the edited file has a name. Also,
+ files can be opened by hitting `ctrl-f1' (execute script code) and
+ typing:
+
+ mp.open("file-to-be-opened");
+
+ * There is no menu.
+ * No ispell support.
+ * No password protected files.
+ * No grep.
+ * No external commands (so no support for help, tags, etc.).
+ * Some movement commands as moving a word left, moving to matching
+ brackets, etc. are still not implemented.
+ * Only a few syntax highlight definitions are implemented.
+ * Many other things I cannot remember.
+
+Documentation is still scarce: the more interesting bits are inside the
+mpsl/doc directory. This is where the scripting language is documented,
+with some basic overviews and implementation notes (there is even an
+embryo of a PostScript quick reference guide).
+
+Customizing can be done by writing MPSL commands in the ~/.mp.mpsl file,
+which is read on startup.
+
+I have not tried to optimize the internal engine, so it's probably some
+magnitudes slower than the 3.x version.

3
mp-5.62.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9727068c4bf5e052227a608dc72ae4225a1e07b6a192116efc2a559b4fe4e206
size 472107

View File

@@ -1,10 +0,0 @@
[Desktop Entry]
Encoding=UTF-8
GenericName=Text Editor
Name=Minimum Profit
MimeType=text/plain;
Exec=mp-5 %U
Icon=mp-5
Type=Application
Terminal=false
Categories=GTK;TextEditor;

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:8d60e68d3665e1adcbf8b4ccd2e01767a79c9bac5d37af99e7a65933eb26609e
size 1531

View File

@@ -1,21 +0,0 @@
Index: mp-5.2.10/makefile.in
===================================================================
--- mp-5.2.10.orig/makefile.in
+++ mp-5.2.10/makefile.in
@@ -144,12 +144,12 @@ install: $(INSTALL_MSG) installdoc $(INS
( cd $(MPSL) ; make install )
installdoc:
- ./mkinstalldirs $(PREFIX)/share/doc/$(APPNAME)
+ ./mkinstalldirs $(PREFIX)/share/doc/packages/$(APPNAME)
( cd $(MPDM); $(MAKE) installdoc )
( cd $(MPSL); $(MAKE) installdoc )
- install -m 644 doc/* $(PREFIX)/share/doc/$(APPNAME)
- install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/$(APPNAME)
- [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/$(APPNAME)/index.html || true
+ install -m 644 doc/* $(PREFIX)/share/doc/packages/$(APPNAME)
+ install -m 644 $(ADD_DOCS) $(PREFIX)/share/doc/packages/$(APPNAME)
+ [ -f doc/mp_index.html ] && install -m 644 doc/mp_index.html $(PREFIX)/share/doc/packages/$(APPNAME)/index.html || true
uninstall: $(UNINSTALLMO)
rm -f $(PREFIX)/bin/$(APPNAME)

View File

@@ -1,23 +1,2 @@
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_core.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_crypt.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_session.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_move.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_writing.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_toys.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_misc.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_syntax.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_vcs.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_spell.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_edit.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_macro.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_templates.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_clipboard.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_tui.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_search.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_drv.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_build.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_tags.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_dir.mpsl")
addFilter("incorrect-fsf-address .*/usr/share/mp-5/mp_file.mpsl")
addFilter("no-manual-page-for-binary .*mpsl")

View File

@@ -1,3 +1,39 @@
-------------------------------------------------------------------
Mon Jun 2 11:23:04 UTC 2025 - Bernhard Wiedemann <bwiedemann@suse.com>
- Add reproducibledocs.patch and reproducibletar.patch
to make package build reproducible
-------------------------------------------------------------------
Wed May 28 15:49:58 UTC 2025 - Friedrich Haubensak <hsk17@mail.de>
- Update to 5.62
- See RELEASE_NOTES for notes on releases since 5.31, and
mp-5.62-releasenotes.patch for notes on releases prior to 5.31
- Drop mp-docdir.patch, add mp-5.62-installdirs.patch
- Drop mp-scrollevent.patch, upstreamed
- Drop desktop and icon source files in favour of upstream
provided files
- Add mp-5.62-config-msgfmt.patch to fix install of lang files
- To build docs and man page, add grutatxt and mp_doccer, add
mp-5.62-mpdm-config.patch, mp-5.62-mpsl-make-quickref.patch
- Qt5 is EOL, replace Qt5Widgets by Qt6Widgets: add
mp-5.62-config-qt6.patch, mp-5.62-qt6-isnull.patch,
mp-5.62-qt6-weight.patch
-------------------------------------------------------------------
Wed Dec 4 08:23:42 UTC 2024 - Martin Pluskal <mpluskal@suse.com>
- Modernise spec file and remove obsolete rpmlintrc filters
- Do not use source urls for download as they are not available
anymore
-------------------------------------------------------------------
Tue Dec 3 13:35:57 UTC 2024 - Friedrich Haubensak <hsk17@mail.de>
- Add mp-scrollevent.patch to fix type issue found by gcc14 compile
time error.
-------------------------------------------------------------------
Thu Feb 22 14:04:01 UTC 2024 - pgajdos@suse.com

64386
mp.keyring

File diff suppressed because it is too large Load Diff

96
mp.spec
View File

@@ -1,7 +1,7 @@
#
# spec file for package mp
#
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
# Copyright (c) 2025 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -12,35 +12,35 @@
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
Name: mp
Version: 5.2.13
Version: 5.62
Release: 0
Summary: A text editor for programmers
License: GPL-2.0
Group: Productivity/Text/Editors
Url: http://triptico.com/software/mp.html
Source0: http://triptico.com/download/mp/mp-%{version}.tar.gz
Source1: http://triptico.com/download/mp/mp-%{version}.tar.gz.asc
Source2: %{name}.keyring
Source3: %{name}-5.desktop
Source4: %{name}-5.png
License: GPL-2.0-only
URL: https://triptico.com/software/mp.html
Source0: https://github.com/ttcdt/mp-5.x/archive/refs/tags/%{version}.tar.gz#/mp-%{version}.tar.gz
Source5: %{name}-rpmlintrc
Source6: %{name}-5-gtk3.desktop
Patch0: %{name}-docdir.patch
Source101: https://triptico.com/download/grutatxt.tar.gz
Source102: https://triptico.com/download/mp_doccer-1.2.2.tar.gz
Source103: reproducibledocs.patch
Patch2: mp-5.62-releasenotes.patch
Patch3: mp-5.62-installdirs.patch
Patch4: mp-5.62-config-msgfmt.patch
Patch5: mp-5.62-mpdm-config.patch
Patch6: mp-5.62-mpsl-make-quickref.patch
Patch7: mp-5.62-config-qt6.patch
Patch8: mp-5.62-qt6-isnull.patch
Patch9: mp-5.62-qt6-weight.patch
Patch10: reproducibletar.patch
BuildRequires: fdupes
BuildRequires: ncurses-devel
BuildRequires: pkgconfig
BuildRequires: update-desktop-files
BuildRequires: pkgconfig(Qt5Widgets)
BuildRequires: pkgconfig(Qt6Widgets)
BuildRequires: pkgconfig(gtk+-3.0)
%if 0%{?suse_version} < 1500
Requires(post): update-desktop-files
Requires(postun): update-desktop-files
%endif
%description
Minimum Profit
@@ -73,7 +73,6 @@ Features
%package gtk3
Summary: A text editor for programmers (GTK+3 version)
Group: Productivity/Text/Editors
Requires: %{name} = %{version}
%description gtk3
@@ -106,55 +105,62 @@ Features
* It helps you abandon vi, emacs and other six-legged freaks definitely.
%prep
%autosetup -p1
## helper tools needed to build docs and man page
%setup -q -T -c -n helpers -a 101
cd ..
%setup -q -T -D -c -n helpers -a 102
cd ..
mv helpers/Grutatxt*/{Grutatxt.pm,grutatxt} helpers/mp_doccer*/mp_doccer helpers
sed -e "s:use lib '.':use lib '%{_builddir}/helpers':" -i helpers/grutatxt
patch -p1 < %{S:103}
%autosetup -p1 -n mp-5.x-%{version}
%build
## nneded for Qt6, see qt6-base / qt6-core-devel
%if 0%{?suse_version} == 1500
export CC=gcc-13
export CPP=g++-13
%endif
export CFLAGS="%{optflags}"
./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
make %{?_smp_mflags}
export PATH=${PATH}:%{_builddir}/helpers
./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5 --with-moc=%{_libexecdir}/qt6/moc
%make_build
mv mp-5 mp-5-qt5
WITHOUT_QT5=1 WITHOUT_QT4=1 ./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
make %{?_smp_mflags}
WITHOUT_MSGFMT=0 WITHOUT_QT5=1 ./config.sh --prefix=%{_prefix} --docdir=%{_docdir}/mp-5
%make_build
%make_build docs
sed -e 's/^Exec=mp-5/&-gtk3/' -e 's/^Name=.*/& (GTK+3 version)/' <minimum-profit.desktop >minimum-profit.desktop-gtk3
mv mp-5 mp-5-gtk3
mv mp-5-qt5 mp-5
%install
%make_install
%make_install install-arch
%make_install -C mpsl
install -D -p -m 644 %{SOURCE3} %{buildroot}/%{_datadir}/applications/%{name}-5.desktop
install -D -p -m 644 %{SOURCE4} %{buildroot}/%{_datadir}/pixmaps/%{name}-5.png
install -p -m 644 %{SOURCE6} %{buildroot}/%{_datadir}/applications/%{name}-5-gtk3.desktop
install -m 755 mp-5-gtk3 %{buildroot}%{_bindir}/mp-5-gtk3
install -m 644 mp-5.1 %{buildroot}/%{_mandir}/man1/mp-5-gtk3.1
%suse_update_desktop_file %{name}-5 TextEditor
install -m 644 minimum-profit.desktop-gtk3 %{buildroot}/%{_datadir}/applications/minimum-profit-gtk3.desktop
%find_lang minimum-profit
rm %{buildroot}%{_datadir}/doc/packages/mp-5/mpsl_quickref.ps
rm %{buildroot}%{_docdir}/mp-5/mpsl_quickref.ps
%fdupes -s %{buildroot}
%if 0%{?suse_version} < 1500
%post
%desktop_database_post
%postun
%desktop_database_postun
%endif
%files -f minimum-profit.lang
%{_bindir}/%{name}-5
%{_bindir}/%{name}sl
%dir %{_docdir}/%{name}-5
%{_docdir}/%{name}-5/*
%{_mandir}/man1/%{name}-5.1%{ext_man}
%{_mandir}/man1/%{name}-5.1%{?ext_man}
%dir %{_datadir}/%{name}-5
%{_datadir}/%{name}-5/*
%{_datadir}/applications/%{name}-5.desktop
%{_datadir}/pixmaps/%{name}-5.png
%{_datadir}/applications/minimum-profit.desktop
%{_datadir}/icons/hicolor/48x48/apps/*
%{_datadir}/metainfo/*
%files gtk3
%{_bindir}/%{name}-5-gtk3
%{_datadir}/applications/%{name}-5-gtk3.desktop
%{_mandir}/man1/%{name}-5-gtk3.1%{ext_man}
%{_datadir}/applications/minimum-profit-gtk3.desktop
%{_mandir}/man1/%{name}-5-gtk3.1%{?ext_man}
%changelog

3
mp_doccer-1.2.2.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:359c699830fa3b9545500dbe1f8d40967bd06b8e8054eff3c67a3c41ecb6f55e
size 16275

35
reproducibledocs.patch Normal file
View File

@@ -0,0 +1,35 @@
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2025-06-02
Patch Grutatxt to not add varying timestamps
into .html files and man-pages, if $SOURCE_DATE_EPOCH is set
so that we can have reproducible-builds.
This patch was done while working on reproducible builds for openSUSE.
diff --git a/grutatxt b/grutatxt
index 78e4327..6a68dcf 100755
--- a/grutatxt
+++ b/helpers/grutatxt
@@ -167,7 +167,7 @@ unless ($no_body) {
print O "<title>$title</title>\n";
printf O "<!-- converted from text by grutatxt $VERSION on %s -->\n", scalar(localtime)
- unless $no_time_sig;
+ unless $no_time_sig or $ENV{SOURCE_DATE_EPOCH};
if ($css) {
if ($embed_css) {
diff --git a/Grutatxt.pm b/Grutatxt.pm
index cc0834d..7352fdd 100644
--- a/Grutatxt.pm
+++ b/helpers/Grutatxt.pm
@@ -1426,7 +1426,7 @@ sub _prefix
{
my ($gh) = @_;
- $gh->_push(".TH \"$gh->{'page-name'}\" \"$gh->{'section'}\" \"" . localtime() . "\"");
+ $gh->_push(".TH \"$gh->{'page-name'}\" \"$gh->{'section'}\" \"" . localtime($ENV{SOURCE_DATE_EPOCH} || time) . "\"");
}

29
reproducibletar.patch Normal file
View File

@@ -0,0 +1,29 @@
Author: Bernhard M. Wiedemann <bwiedemann suse de>
Date: 2025-06-02
Make tar-file creation fully deterministic
using the snippet from
https://reproducible-builds.org/docs/archives/
note: will fail if SOURCE_DATE_EPOCH is not set.
If mtime does not matter, we can use '1' there instead.
This patch was done while working on reproducible builds for openSUSE.
diff --git a/makefile.in b/makefile.in
index 8ee95fd..289f849 100644
--- a/makefile.in
+++ b/makefile.in
@@ -37,7 +37,11 @@ dep:
-e 's;$(MPSL)/;$$(MPSL)/;g' > makefile.depend
mp.tar: $(ARCHFILES)
- $(TAR) cvf $@ $(ARCHFILES)
+ $(TAR) --sort=name \
+ --mtime="@${SOURCE_DATE_EPOCH}" \
+ --owner=0 --group=0 --numeric-owner \
+ --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
+ -cvf $@ $(ARCHFILES)
mp.tar.o: mp.tar
$(LD) -r -b binary mp.tar -o $@