Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gap-autodoc for openSUSE:Factory checked in at 2026-03-19 17:39:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gap-autodoc (Old) and /work/SRC/openSUSE:Factory/.gap-autodoc.new.8177 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gap-autodoc" Thu Mar 19 17:39:14 2026 rev:6 rq:1341050 version:2026.03.18 Changes: -------- --- /work/SRC/openSUSE:Factory/gap-autodoc/gap-autodoc.changes 2026-03-18 16:53:18.648033413 +0100 +++ /work/SRC/openSUSE:Factory/.gap-autodoc.new.8177/gap-autodoc.changes 2026-03-19 17:40:56.226659335 +0100 @@ -1,0 +2,7 @@ +Wed Mar 18 23:07:45 UTC 2026 - Jan Engelhardt <[email protected]> + +- Update to release 2026.03.18 + * Fix running the test suite via `TestPackage("AutoDoc")` when + CWD is not the package root + +------------------------------------------------------------------- Old: ---- AutoDoc-2026.03.17.tar.gz New: ---- AutoDoc-2026.03.18.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gap-autodoc.spec ++++++ --- /var/tmp/diff_new_pack.e9uJrP/_old 2026-03-19 17:40:56.774682038 +0100 +++ /var/tmp/diff_new_pack.e9uJrP/_new 2026-03-19 17:40:56.774682038 +0100 @@ -17,7 +17,7 @@ Name: gap-autodoc -Version: 2026.03.17 +Version: 2026.03.18 Release: 0 Summary: GAP: Tools for generating automatic GAPDoc documentations License: GPL-2.0-only ++++++ AutoDoc-2026.03.17.tar.gz -> AutoDoc-2026.03.18.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/CHANGES.md new/AutoDoc-2026.03.18/CHANGES.md --- old/AutoDoc-2026.03.17/CHANGES.md 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/CHANGES.md 2026-03-18 23:56:19.000000000 +0100 @@ -1,5 +1,9 @@ This file describes changes in the AutoDoc package. +## 2026.03.18 + - Fix running the test suite via `TestPackage("AutoDoc")` when the + current working directory is not the package root + ## 2026.03.17 + **Breaking changes** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/COPYRIGHT new/AutoDoc-2026.03.18/COPYRIGHT --- old/AutoDoc-2026.03.17/COPYRIGHT 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/COPYRIGHT 2026-03-18 23:56:19.000000000 +0100 @@ -14,7 +14,7 @@ Street, Fifth Floor, Boston, MA 02110-1301, USA. -Copyright (C) 2012-2019 by its authors and contributors: +Copyright (C) 2012-2026 by its authors and contributors: Authors: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/Makefile new/AutoDoc-2026.03.18/Makefile --- old/AutoDoc-2026.03.17/Makefile 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/Makefile 2026-03-18 23:56:19.000000000 +0100 @@ -1,7 +1,7 @@ .PHONY: doc html clean check regen GAP ?= gap -GAP_ARGS = -q --quitonbreak --packagedirs . +GAP_ARGS = -q --quitonbreak --packagedirs $(abspath .) doc: $(GAP) $(GAP_ARGS) makedoc.g -c 'QUIT;' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/PackageInfo.g new/AutoDoc-2026.03.18/PackageInfo.g --- old/AutoDoc-2026.03.17/PackageInfo.g 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/PackageInfo.g 2026-03-18 23:56:19.000000000 +0100 @@ -10,7 +10,7 @@ PackageName := "AutoDoc", Subtitle := "Generate documentation from GAP source code", -Version := "2026.03.17", +Version := "2026.03.18", Date := ~.Version{[ 1 .. 10 ]}, Date := Concatenation( ~.Date{[ 9, 10 ]}, "/", ~.Date{[ 6, 7 ]}, "/", ~.Date{[ 1 .. 4 ]} ), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/_entities.xml new/AutoDoc-2026.03.18/doc/_entities.xml --- old/AutoDoc-2026.03.17/doc/_entities.xml 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/_entities.xml 2026-03-18 23:56:19.000000000 +0100 @@ -1,6 +1,6 @@ <!ENTITY AutoDoc '<Package>AutoDoc</Package>'> <!ENTITY PackageName '<Package>PackageName</Package>'> -<!ENTITY RELEASEDATE '17 March 2026'> +<!ENTITY RELEASEDATE '18 March 2026'> <!ENTITY RELEASEYEAR '2026'> -<!ENTITY VERSION '2026.03.17'> +<!ENTITY VERSION '2026.03.18'> <!ENTITY io '<Package>io</Package>'> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/_main.tex new/AutoDoc-2026.03.18/doc/_main.tex --- old/AutoDoc-2026.03.17/doc/_main.tex 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/_main.tex 2026-03-18 23:56:19.000000000 +0100 @@ -101,8 +101,8 @@ {\Huge \textbf{ Generate documentation from \textsf{GAP} source code \mbox{}}}\\ \vfill -{\Huge 2026.03.17 \mbox{}}\\[1cm] -{ 17 March 2026 \mbox{}}\\[1cm] +{\Huge 2026.03.18 \mbox{}}\\[1cm] +{ 18 March 2026 \mbox{}}\\[1cm] \mbox{}\\[2cm] {\Large \textbf{ Sebastian Gutsche \mbox{}}}\\ {\Large \textbf{ Max Horn \mbox{}}}\\ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/chap0.html new/AutoDoc-2026.03.18/doc/chap0.html --- old/AutoDoc-2026.03.17/doc/chap0.html 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/chap0.html 2026-03-18 23:56:19.000000000 +0100 @@ -29,10 +29,10 @@ <h2>Generate documentation from <strong class="pkg">GAP</strong> source code</h2> <p> - 2026.03.17</p> + 2026.03.18</p> <p> - 17 March 2026 + 18 March 2026 </p> </div> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/chap0.txt new/AutoDoc-2026.03.18/doc/chap0.txt --- old/AutoDoc-2026.03.17/doc/chap0.txt 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/chap0.txt 2026-03-18 23:56:19.000000000 +0100 @@ -6,10 +6,10 @@ [1X Generate documentation from [5XGAP[105X source code [101X - 2026.03.17 + 2026.03.18 - 17 March 2026 + 18 March 2026 Sebastian Gutsche diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/chap0_mj.html new/AutoDoc-2026.03.18/doc/chap0_mj.html --- old/AutoDoc-2026.03.17/doc/chap0_mj.html 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/chap0_mj.html 2026-03-18 23:56:19.000000000 +0100 @@ -32,10 +32,10 @@ <h2>Generate documentation from <strong class="pkg">GAP</strong> source code</h2> <p> - 2026.03.17</p> + 2026.03.18</p> <p> - 17 March 2026 + 18 March 2026 </p> </div> Binary files old/AutoDoc-2026.03.17/doc/manual.pdf and new/AutoDoc-2026.03.18/doc/manual.pdf differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/doc/title.xml new/AutoDoc-2026.03.18/doc/title.xml --- old/AutoDoc-2026.03.17/doc/title.xml 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/doc/title.xml 2026-03-18 23:56:19.000000000 +0100 @@ -9,7 +9,7 @@ Generate documentation from &GAP; source code </Subtitle> <Version> - 2026.03.17 + 2026.03.18 </Version> <Author> Sebastian Gutsche @@ -36,7 +36,7 @@ <Homepage>https://www.quendi.de/math</Homepage> </Author> <Date> - 17 March 2026 + 18 March 2026 </Date> <Abstract> &AutoDoc; is a &GAP; package whose purpose is to aid &GAP; package authors in creating and maintaining the documentation of their packages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/gap/Magic.gi new/AutoDoc-2026.03.18/gap/Magic.gi --- old/AutoDoc-2026.03.17/gap/Magic.gi 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/gap/Magic.gi 2026-03-18 23:56:19.000000000 +0100 @@ -5,74 +5,6 @@ # # SPDX-License-Identifier: GPL-2.0-or-later -# Given a string containing a ".", , return its suffix, -# i.e. the bit after the last ".". For example, given "test.txt", -# it returns "txt". -BindGlobal( "AUTODOC_GetSuffix", -function(str) - local i; - i := Length(str); - while i > 0 and str[i] <> '.' do i := i - 1; od; - if i = 0 then return ""; fi; - return str{[i+1..Length(str)]}; -end ); - -# Scan the given (by name) subdirs of a package dir for -# files with one of the given extensions, and return the corresponding -# filenames, as relative paths (relative to the package dir). -# -# For example, the invocation -# AUTODOC_FindMatchingFiles(pkgdir, [ "gap/" ], [ "gi", "gd" ]); -# might return a list looking like -# [ "gap/AutoDocMainFunction.gd", "gap/AutoDocMainFunction.gi", ... ] -BindGlobal( "AUTODOC_FindMatchingFiles", -function (pkgdir, subdirs, extensions) - local result, JoinRelativePath, AddMatchingFiles, d_rel; - - result := []; - - JoinRelativePath := function( dir, entry ) - if dir = "" then - return entry; - fi; - return Concatenation( dir, "/", entry ); - end; - - AddMatchingFiles := function( abs_dir, rel_dir, recursive ) - local abs_dir_obj, entries, entry, abs_entry, rel_entry; - - abs_dir_obj := Directory( abs_dir ); - entries := DirectoryContents( abs_dir_obj ); - Sort( entries ); - for entry in entries do - if entry = "." or entry = ".." then - continue; - fi; - abs_entry := Filename( abs_dir_obj, entry ); - rel_entry := JoinRelativePath( rel_dir, entry ); - if IsDirectoryPath( abs_entry ) then - if recursive then - AddMatchingFiles( abs_entry, rel_entry, true ); - fi; - elif AUTODOC_GetSuffix( entry ) in extensions and - IsReadableFile( abs_entry ) then - Add( result, rel_entry ); - fi; - od; - end; - - for d_rel in subdirs do - if d_rel = "" or d_rel = "." then - AddMatchingFiles( Filename( pkgdir, "" ), "", false ); - elif not IsDirectoryPath( Filename( pkgdir, d_rel ) ) then - continue; - else - AddMatchingFiles( Filename( pkgdir, d_rel ), d_rel, true ); - fi; - od; - return result; -end ); - # InstallGlobalFunction( AutoDoc, function( arg ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/gap/Parser.gi new/AutoDoc-2026.03.18/gap/Parser.gi --- old/AutoDoc-2026.03.17/gap/Parser.gi 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/gap/Parser.gi 2026-03-18 23:56:19.000000000 +0100 @@ -298,8 +298,9 @@ comment_start_pos, context_stack, current_command, current_line, current_line_fence, current_line_info, current_line_is_fence_delimiter, current_line_positition_for_filter, - current_line_unedited, filename, filestream, groupnumber, - line_number, markdown_fence, plain_text_mode, rest_of_file_skipped, + current_line_unedited, display_filename, filename, + filestream, groupnumber, line_number, + markdown_fence, plain_text_mode, rest_of_file_skipped, scope_group, single_line_title_item_list, title_item, title_item_list, xml_comment_mode; groupnumber := 0; @@ -325,11 +326,14 @@ end; ErrorWithPos := function(arg) local list; - list := Concatenation(arg, [ ",\n", "at ", filename, ":", line_number]); + list := Concatenation( + arg, + [ ",\n", "at ", display_filename, ":", line_number ] + ); CallFuncList(Error, list); end; CurrentSourcePosition := function() - return rec( filename := filename, line := line_number ); + return rec( filename := display_filename, line := line_number ); end; RecordStringSourcePosition := function( item ) local source_field; @@ -1220,6 +1224,12 @@ rest_of_file_skipped := false; ##Now read the files. for filename in filename_list do + if IsString( filename ) then + display_filename := filename; + else + display_filename := filename.display; + filename := filename.path; + fi; Reset(); ##Need to set autodoc_read_line to false again since we now look at a new file. autodoc_read_line := false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/gap/ToolFunctions.gi new/AutoDoc-2026.03.18/gap/ToolFunctions.gi --- old/AutoDoc-2026.03.17/gap/ToolFunctions.gi 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/gap/ToolFunctions.gi 2026-03-18 23:56:19.000000000 +0100 @@ -5,6 +5,74 @@ # # SPDX-License-Identifier: GPL-2.0-or-later +# Given a string containing a ".", , return its suffix, +# i.e. the bit after the last ".". For example, given "test.txt", +# it returns "txt". +BindGlobal( "AUTODOC_GetSuffix", +function(str) + local i; + i := Length(str); + while i > 0 and str[i] <> '.' do i := i - 1; od; + if i = 0 then return ""; fi; + return str{[i+1..Length(str)]}; +end ); + +# Scan the given (by name) subdirs of a package dir for +# files with one of the given extensions, and return the corresponding +# filenames, as relative paths (relative to the package dir). +# +# For example, the invocation +# AUTODOC_FindMatchingFiles(pkgdir, [ "gap/" ], [ "gi", "gd" ]); +# might return a list looking like +# [ "gap/AutoDocMainFunction.gd", "gap/AutoDocMainFunction.gi", ... ] +BindGlobal( "AUTODOC_FindMatchingFiles", +function (pkgdir, subdirs, extensions) + local result, JoinRelativePath, AddMatchingFiles, d_rel; + + result := []; + + JoinRelativePath := function( dir, entry ) + if dir = "" then + return entry; + fi; + return Concatenation( dir, "/", entry ); + end; + + AddMatchingFiles := function( abs_dir, rel_dir, recursive ) + local abs_dir_obj, entries, entry, abs_entry, rel_entry; + + abs_dir_obj := Directory( abs_dir ); + entries := DirectoryContents( abs_dir_obj ); + Sort( entries ); + for entry in entries do + if entry = "." or entry = ".." then + continue; + fi; + abs_entry := Filename( abs_dir_obj, entry ); + rel_entry := JoinRelativePath( rel_dir, entry ); + if IsDirectoryPath( abs_entry ) then + if recursive then + AddMatchingFiles( abs_entry, rel_entry, true ); + fi; + elif AUTODOC_GetSuffix( entry ) in extensions and + IsReadableFile( abs_entry ) then + Add( result, rel_entry ); + fi; + od; + end; + + for d_rel in subdirs do + if d_rel = "" or d_rel = "." then + AddMatchingFiles( Filename( pkgdir, "" ), "", false ); + elif not IsDirectoryPath( Filename( pkgdir, d_rel ) ) then + continue; + else + AddMatchingFiles( Filename( pkgdir, d_rel ), d_rel, true ); + fi; + od; + return result; +end ); + # Ensure that the directory named by the given path string exists, creating any # missing parent directories on the way. Relative paths are accepted and `.` / # `..` components are normalized before creating directories. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/tst/errorwithpos.tst new/AutoDoc-2026.03.18/tst/errorwithpos.tst --- old/AutoDoc-2026.03.17/tst/errorwithpos.tst 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/tst/errorwithpos.tst 2026-03-18 23:56:19.000000000 +0100 @@ -1,14 +1,25 @@ # # test parser error reporting with ErrorWithPos +gap> autodoc_pkgroot := Filename( DirectoriesPackageLibrary( "AutoDoc", "" ), "" );; +gap> if not StartsWith( autodoc_pkgroot, "/" ) then +> autodoc_pkgroot := Filename( +> Directory( AUTODOC_CurrentDirectory() ), +> autodoc_pkgroot +> ); +> fi; gap> ParseFixture := function( arg ) -> local tree, default_chapter_data; +> local tree, default_chapter_data, file; > tree := DocumentationTree(); > if Length( arg ) > 1 then > default_chapter_data := arg[ 2 ]; > else > default_chapter_data := CreateDefaultChapterData( "Pkg" ); > fi; -> AutoDoc_Parser_ReadFiles( [ arg[ 1 ] ], tree, default_chapter_data ); +> file := rec( +> path := Filename( Directory( autodoc_pkgroot ), arg[ 1 ] ), +> display := arg[ 1 ] +> ); +> AutoDoc_Parser_ReadFiles( [ file ], tree, default_chapter_data ); > return tree; > end;; gap> RenderFixtureDescription := function( file, item_name ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/tst/manual.expected/_entities.xml new/AutoDoc-2026.03.18/tst/manual.expected/_entities.xml --- old/AutoDoc-2026.03.17/tst/manual.expected/_entities.xml 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/tst/manual.expected/_entities.xml 2026-03-18 23:56:19.000000000 +0100 @@ -1,6 +1,6 @@ <!ENTITY AutoDoc '<Package>AutoDoc</Package>'> <!ENTITY PackageName '<Package>PackageName</Package>'> -<!ENTITY RELEASEDATE '17 March 2026'> +<!ENTITY RELEASEDATE '18 March 2026'> <!ENTITY RELEASEYEAR '2026'> -<!ENTITY VERSION '2026.03.17'> +<!ENTITY VERSION '2026.03.18'> <!ENTITY io '<Package>io</Package>'> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/tst/manual.expected/title.xml new/AutoDoc-2026.03.18/tst/manual.expected/title.xml --- old/AutoDoc-2026.03.17/tst/manual.expected/title.xml 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/tst/manual.expected/title.xml 2026-03-18 23:56:19.000000000 +0100 @@ -9,7 +9,7 @@ Generate documentation from &GAP; source code </Subtitle> <Version> - 2026.03.17 + 2026.03.18 </Version> <Author> Sebastian Gutsche @@ -36,7 +36,7 @@ <Homepage>https://www.quendi.de/math</Homepage> </Author> <Date> - 17 March 2026 + 18 March 2026 </Date> <Abstract> &AutoDoc; is a &GAP; package whose purpose is to aid &GAP; package authors in creating and maintaining the documentation of their packages. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/AutoDoc-2026.03.17/tst/misc.tst new/AutoDoc-2026.03.18/tst/misc.tst --- old/AutoDoc-2026.03.17/tst/misc.tst 2026-03-17 22:43:30.000000000 +0100 +++ new/AutoDoc-2026.03.18/tst/misc.tst 2026-03-18 23:56:19.000000000 +0100 @@ -174,8 +174,43 @@ # # AutoDoc_Parser_ReadFiles: multiline InstallMethod parsing # +gap> autodoc_pkgroot := Filename( DirectoriesPackageLibrary( "AutoDoc", "" ), "" );; +gap> if not StartsWith( autodoc_pkgroot, "/" ) then +> autodoc_pkgroot := Filename( +> Directory( AUTODOC_CurrentDirectory() ), +> autodoc_pkgroot +> ); +> fi; +gap> parser_fixture := rec( +> path := Filename( +> Directory( autodoc_pkgroot ), +> "tst/autodoc-parser-installmethod.g" +> ), +> display := "tst/autodoc-parser-installmethod.g" +> );; gap> tree := DocumentationTree();; -gap> AutoDoc_Parser_ReadFiles( [ "tst/autodoc-parser-installmethod.g" ], tree, rec() ); +gap> AutoDoc_Parser_ReadFiles( [ parser_fixture ], tree, rec() ); +gap> section := SectionInTree( tree, "Parser", "InstallMethod" );; +gap> item := section!.content[ 1 ];; +gap> item!.item_type; +"Func" +gap> item!.name; +"MyOp" +gap> item!.tester_names; +"for IsInt,IsString" +gap> item!.arguments; +"x,y" +gap> olddir := Filename(DirectoryCurrent(), "");; +gap> ChangeDirectoryCurrent(Filename(DirectoryTemporary(), "")); +true +gap> tree := DocumentationTree();; +gap> AutoDoc_Parser_ReadFiles( +> [ parser_fixture ], +> tree, +> rec() +> ); +gap> ChangeDirectoryCurrent(olddir); +true gap> section := SectionInTree( tree, "Parser", "InstallMethod" );; gap> item := section!.content[ 1 ];; gap> item!.item_type; ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.e9uJrP/_old 2026-03-19 17:40:57.102695627 +0100 +++ /var/tmp/diff_new_pack.e9uJrP/_new 2026-03-19 17:40:57.106695793 +0100 @@ -1,5 +1,5 @@ -mtime: 1773823197 -commit: 73eec0a6758ed2ceb3eec507758fdc0ab85bfaef0f32fb4025415f730de9c3e5 +mtime: 1773875290 +commit: c3dde868af11c2efbe07886a61c7eae738706032b86aa4bee02632ba4af0e1f2 url: https://src.opensuse.org/jengelh/gap-autodoc revision: master ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-03-19 00:08:23.000000000 +0100 @@ -0,0 +1 @@ +.osc
