From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: dannym@scratchpost.org
Cc: 62424@debbugs.gnu.org
Subject: [bug#62424] [PATCH] gnu: Add lazarus.
Date: Wed, 29 Mar 2023 14:57:56 -0400 [thread overview]
Message-ID: <87355n2xmz.fsf@gmail.com> (raw)
In-Reply-To: <20230323101604.17976-1-dannym@scratchpost.org> (dannym@scratchpost.org's message of "Thu, 23 Mar 2023 11:16:04 +0100")
Hi Danny!
dannym@scratchpost.org writes:
> From: Danny Milosavljevic <dannym@scratchpost.org>
>
> * gnu/packages/pascal.scm (lazarus): Add variable.
> ---
> gnu/packages/pascal.scm | 324 ++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 324 insertions(+)
>
> diff --git a/gnu/packages/pascal.scm b/gnu/packages/pascal.scm
> index f563f077dc..4432327bee 100644
> --- a/gnu/packages/pascal.scm
> +++ b/gnu/packages/pascal.scm
> @@ -24,6 +24,7 @@ (define-module (gnu packages pascal)
> #:use-module ((guix licenses) #:prefix license:)
> #:use-module (guix packages)
> #:use-module (guix download)
> + #:use-module (guix git-download)
> #:use-module (guix gexp)
> #:use-module (guix utils)
> #:use-module (guix build-system gnu)
> @@ -32,9 +33,13 @@ (define-module (gnu packages pascal)
> #:use-module (gnu packages bootstrap)
> #:use-module (gnu packages compression)
> #:use-module (gnu packages gcc)
> + #:use-module (gnu packages glib)
> + #:use-module (gnu packages gtk)
> #:use-module (gnu packages ncurses)
> #:use-module (gnu packages perl)
> + #:use-module (gnu packages pkg-config)
> #:use-module (gnu packages xml)
> + #:use-module (gnu packages xorg)
> #:use-module (ice-9 match))
>
> (define %fpc-version "3.2.2")
> @@ -270,3 +275,322 @@ (define-public p2c
> Pascal programs.")
> (home-page "http://users.fred.net/tds/lab/p2c/")
> (license license:gpl2+)))
> +
> +(define-public lazarus
> + (package
> + (name "lazarus")
> + (version "2.2.6")
> + (source (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url
> + "https://gitlab.com/freepascal.org/lazarus/lazarus.git")
> + (commit (string-append "lazarus_"
> + (string-join
> + (string-split version #\.)
> + "_")))))
> + (file-name (string-append name "-" version "-checkout"))
> + (sha256
> + (base32
> + "0hpk6fxmy1h1q0df41jg1vnp8g8vynrg5v5ad43lv229nizfs3wj"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:tests? #f ; No tests exist
> + #:phases
> + (modify-phases %standard-phases
> + (delete 'configure)
> + (replace 'build
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + ;; RUNPATH -k-rpath=
> + ;; -Xr<x> rlink-path
Seems like leftovers.
> + (let* ((libdirs
> + (map (lambda (x)
> + (assoc-ref inputs x))
> + '("glib" "gdk-pixbuf" "gtk+" "libx11"
> + "libx11" "pango" "cairo" "atk")))
Nitpick: the map could be to the right of libdirs.
> + (libs (append
> + (map (lambda (name)
> + (string-append "-Fl" name "/lib"))
> + libdirs)
> + (map (lambda (name)
> + (string-append "-k-rpath=" name "/lib"))
> + libdirs))))
> + (setenv "LAZARUS_LIBPATHS"
> + (string-append ;"-XD "
Leftovers.
> + (string-join libs " ")))
> + (setenv "MAKEFLAGS"
> + (string-append "LHELP_OPT="
> + (string-join libs "\\ "))))
> + (setenv "INSTALL_PREFIX" (assoc-ref outputs "out"))
> + (invoke "make" "bigide"))))))
> + (native-inputs
> + (list fpc pkg-config))
> + (inputs
> + (list glib gdk-pixbuf gtk+-2 libx11 pango cairo atk))
Can't it use GTK 3 at least? GTK 2 is on the way out...
> + (synopsis "Integrated development environment for Pascal")
> + (description "This package provides an integrated development environment
> +for Pascal.")
> + (home-page "https://www.lazarus-ide.org/")
> + ; asl2.0: lcl/interfaces/customdrawn/android/*, lcl/lcltaskdialog.pas
> + ;
> + ; CC-BY-SA-3:
> + ; components/onlinepackagemanager/images/*, lcl/lcltaskdialog.pas
> + ;
> + ; CC-BY-SA-4: images/icons/lazarus.svg, lcl/lcltaskdialog.pas
> + ;
> + ; Expat: components/aggpas/expat-pas/*,
> + ; examples/database/sqldbtutorial3/dbconfig.pas,
> + ; examples/database/tsqlscript/dbconfig.pas,
> + ; lcl/interfaces/customdrawn/android/egl.pas, lcl/themes.pas,
> + ; components/opengl/example/uglyfont.pas
> + ;
> + ; Freetype:
> + ; components/lazutils/lazfreetype.pas, components/lazutils/tt*.pas
> + ;
> + ; LGPL-2+:
> + ; components/chmhelp/lhelp/chmdataprovider.pas
> + ; components/chmhelp/lhelp/chmspecialparser.pas
> + ; components/customdrawn/customdrawnextras.pas
> + ; components/datetimectrls/*
> + ; components/dbexport/fpdataexporter.pp
> + ; components/dbexport/frmbaseconfigexport.pp
> + ; components/dbexport/frmexportprogress.pp
> + ; components/dbexport/frmselectexportformat.pp
> + ; components/dbexport/regdbexport.pp
> + ; components/fpdebug/fpimgreaderwinpetypes.pas
> + ; components/fpvectorial/htmlvectorialreader.pas
> + ; components/ideintf/actionseditor.pas
> + ; components/ideintf/actionseditorstd.pas
> + ; components/ideintf/baseideintf.pas
> + ; components/ideintf/dbpropedits.pas
> + ; components/ideintf/fieldseditor.pas
> + ; components/ideintf/idedialogs.pas
> + ; components/ideintf/ideexterntoolintf.pas
> + ; components/ideintf/ideutils.pas
> + ; components/ideintf/keyvalpropeditdlg.pas
> + ; components/ideintf/macrodefintf.pas
> + ; components/ideintf/macrointf.pas
> + ; components/ideintf/maskpropedit.pas
> + ; components/ideintf/newfield.pas
> + ; components/ideintf/toolbarintf.pas
> + ; components/ideintf/treeviewpropedit.pas
> + ; components/lazcontrols/checkboxthemed.pas
> + ; components/lazcontrols/dividerbevel.pas
> + ; components/lazcontrols/extendednotebook.pas
> + ; components/lazcontrols/listfilteredit.pas
> + ; components/lazcontrols/listviewfilteredit.pas
> + ; components/lazcontrols/lvlgraphctrl.pas
> + ; components/lazcontrols/treefilteredit.pas
> + ; components/lazreport/source/*
> + ; components/lazutils/asiancodepagefunctions.inc
> + ; components/lazutils/fpcadds.pas
> + ; components/lazutils/laz2_dom.pas
> + ; components/lazutils/laz2_xmlcfg.pas
> + ; components/lazutils/laz2_xmlread.pas
> + ; components/lazutils/laz2_xmlutils.pas
> + ; components/lazutils/laz2_xmlwrite.pas
> + ; components/lazutils/laz2_xpath.pas
> + ; components/lazutils/laz_xmlcfg.pas
> + ; components/lazutils/laz_xmlstreaming.pas
> + ; components/lazutils/lookupstringlist.pas
> + ; components/multithreadprocs/mtpcpu.pas
> + ; components/multithreadprocs/mtprocs.pas
> + ; components/multithreadprocs/mtputils.pas
> + ; components/opengl/glcocoanscontext.pas
> + ; components/paradox/regparadox.pp
> + ; components/printers/printer4lazstrconst.pas
> + ; components/sparta/dockedformeditor/source/*
> + ; components/sparta/generics/source/*
> + ; components/wiki/myfphttpclient.pp
> + ; examples/lpicustomdata/lpicustomdata.lpr
> + ; ide/findinfilesdlg.pas
> + ; ide/findreplacedialog.pp
> + ; ide/inputfiledialog.pas
> + ; ide/lazadvancedipc.pp
> + ; ide/patheditordlg.pas
> + ; ide/transfermacros.pp
> + ; ide/wordcompletion.pp
> + ; lcl/colorbox.pas
> + ; lcl/customdrawncontrols.pas
> + ; lcl/dbextctrls.pp
> + ; lcl/dbgrids.pas
> + ; lcl/forms/calcform.pas
> + ; lcl/forms/timepopup.pas
> + ; lcl/grids.pas
> + ; lcl/include/comboex.inc
> + ; lcl/include/controlconsts.inc
> + ; lcl/include/customflowpanel.inc
> + ; lcl/include/dbdateedit.inc
> + ; lcl/include/tiffimage.inc
> + ; lcl/interfacebase.pp
> + ; lcl/interfaces/cocoa/cocoacaret.pas
> + ; lcl/interfaces/cocoa/cocoawschecklst.pas
> + ; lcl/interfaces/cocoa/cocoawsspin.pas
> + ; lcl/interfaces/cocoa/cocoa_extra.pas
> + ; lcl/interfaces/customdrawn/customdrawn_winextra.pas
> + ; lcl/interfaces/gtk3/gtk3wsextdlgs.pp
> + ; lcl/interfaces/qt/qt45.pas
> + ; lcl/interfaces/qt/qtcaret.pas
> + ; lcl/interfaces/win32/win32extra.pas
> + ; lcl/interfaces/wince/winext.pas
> + ; lcl/lclunicodedata.pas
> + ; test/testresult-db/importtestresults.pp
> + ; test/testresult-db/teststr.pp
> + ; test/testresult-db/tresults.pp
> + ; tools/lazdatadesktop/ddfiles.pp
> + ; components/aarre/src/aarrepkglist.pas
> + ; components/activex/activexcontainer.pas
> + ; components/activex/lazactivexreg.pas
> + ; components/anchordocking/anchordocking.pas
> + ; components/anchordocking/anchordockoptionsdlg.pas
> + ; components/anchordocking/anchordockstorage.pas
> + ; components/anchordocking/anchordockstr.pas
> + ; components/anchordocking/design/registeranchordocking.pas
> + ; components/anchordocking/restoredebugger/mainunit.pas
> + ; components/cairocanvas/cairoprinter.pas
> + ; components/codetools/examples/sourcecloser.lpr
> + ; components/compilers/c/lazcstrconsts.pas
> + ; components/compilers/c/lazcutil.pas
> + ; components/datadict/ldd_consts.pas
> + ; components/dbexport/sdb_consts.pas
> + ; components/externhelp/externhelpfrm.pas
> + ; components/fpcunit/guitestrunner.pas
> + ; components/fpcunit/ide/fpcunitlazideintf.pas
> + ; components/fpcunit/ide/strtestcaseopts.pas
> + ; components/fppkg/src/fppkg_const.pas
> + ; components/fppkg/src/fppkg_details.pas
> + ; components/fppkg/src/fppkg_mainfrm.pas
> + ; components/fppkg/src/fppkg_optionsfrm.pas
> + ; components/fppkg/src/lazfppkgmanagerintf.pas
> + ; components/fpweb/fpideexteditorinsertfilenameunit.pas
> + ; components/fpweb/fpwebfieldsettagunit.pas
> + ; components/fpweb/fpwebhrefeditunit.pas
> + ; components/fpweb/fpwebhtmltaglegendunit.pas
> + ; components/fpweb/fpwebnewhtmlfileunit.pas
> + ; components/fpweb/fpwebnewhtmlformunit.pas
> + ; components/fpweb/fpwebnewhtmlimgunit.pas
> + ; components/fpweb/fpwebnewhtmlinputunit.pas
> + ; components/fpweb/fpwebnewhtmllistunit.pas
> + ; components/fpweb/fpwebnewhtmltableunit.pas
> + ; components/fpweb/fpwebnewhtmltagpreunit.pas
> + ; components/fpweb/fpwebnewhtmltagtdunit.pas
> + ; components/fpweb/fpwebnewhtmltagtrunit.pas
> + ; components/fpweb/fpwebselectoptionsunit.pas
> + ; components/fpweb/fpwebselecttagunit.pas
> + ; components/fpweb/lazweb.pp
> + ; components/fpweb/weblazideintf.pp
> + ; components/images/lazbmp.pas
> + ; components/images/lazjpg.pas
> + ; components/images/lazpng.pas
> + ; components/images/lazpnm.pas
> + ; components/images/laztga.pas
> + ; components/images/lazxpm.pas
> + ; components/lazreport/samples/editor/maincalleditor.pas
> + ; components/lazreport/source/addons/DialogControls/lrdbdialogcontrols.pas
> + ; components/lazreport/source/addons/DialogControls/lrdialogcontrols.pas
> + ; components/lazreport/source/addons/DialogControls/lrformstorage.pas
> + ; components/lazreport/source/addons/DialogControls/lrformstorageeditor.pas
> + ; components/lazreport/source/addons/lrFclPDFExport/lr_e_fclpdf.pas
> + ; components/lazreport/source/addons/lrFclPDFExport/lr_pdfexport.lpk
> + ; components/lazreport/source/addons/lrFclPDFExport/lrpdfexport.pas
> + ; components/lazreport/source/addons/lrOfficeImport/lrofficeimport.pas
> + ; components/lazreport/source/addons/lrOfficeImport/lrspreadsheetimportunit.pas
> + ; components/lazreport/source/fr3tolrf.pas
> + ; components/lazreport/source/lr_crossarray.pas
> + ; components/lazreport/source/lr_crosstab.pas
> + ; components/lazreport/source/lr_crosstabeditor.pas
> + ; components/lazreport/source/lr_fpc.pas
> + ; components/lazreport/source/lr_hyphen.pas
> + ; components/messagecomposer/messagecomposer.pas
> + ; components/mrumenu/mrumanager.pp
> + ; components/mrumenu/reglazmru.pp
> + ; components/multithreadprocs/examples/parallelloop1.lpr
> + ; components/plotfunction/exprplotpanel.pp
> + ; components/plotfunction/plotpanel.pp
> + ; components/synedit/design/synpropertyeditobjectlist.pas
> + ; components/vlc/lclvlc.pp
> + ; examples/androidlcl/sqlitejniandroid.pas
> + ; examples/cleandir/dircleaner.pp
> + ; examples/cleandir/frmlog.pp
> + ; examples/cleandir/frmmain.pp
> + ; examples/cleandir/svccleandirs.pp
> + ; examples/cleandir/svcmap.pp
> + ; examples/designnonlcl/mywidgetdesigner.pas
> + ; examples/designnonlcl/mywidgetset.pas
> + ; examples/exploremenu/frmexploremenu.pas
> + ; examples/gridexamples/columneditors/main.pas
> + ; examples/gridexamples/columneditors/stringgrideditor.lpr
> + ; ide/editortoolbarstatic.pas
> + ; ide/toolbarconfig.pas
> + ; lcl/comboex.pas
> + ; lcl/defaulttranslator.pas
> + ; lcl/interfaces/gtk3/gtk3bindings/lazpangocairo1.pas
> + ; lcl/lcltranslator.pas
> + ; tools/iconvtable.pas
> + ; tools/iconvtable_dbcs.pas
> + ; tools/lazdatadesktop/lazdatadeskstr.pas
> + ; tools/lplupdate.lpr
> + ; tools/updatemakefiles.lpr
> + ; lcl/lcltaskdialog.pas
> +
> + ; MPL-1.1:
> + ; components/synedit/synedithighlighter.pp
> + ; components/synedit/synedithighlighterfoldbase.pas
> + ; components/synedit/synhighlighterposition.pas
> + ; components/synunihighlighter/synuni.lpk
> + ; components/turbopower_ipro/ipanim.pas
> + ; components/turbopower_ipro/ipconst.pas
> + ; components/turbopower_ipro/ipdefct.inc
> + ; components/turbopower_ipro/ipdefine.inc
> + ; components/turbopower_ipro/ipfilebroker.pas
> + ; components/turbopower_ipro/iphtml.pas
> + ; components/turbopower_ipro/iphtmlpv.pas
> + ; components/turbopower_ipro/ipmsg.pas
> + ; components/turbopower_ipro/ipstrms.pas
> + ; components/turbopower_ipro/iputils.pas
> + ; lcl/interfaces/gtk3/gtk3bindings/lazcairo1.pas
> +
> + ; own_dwywwi_license: components/opengl/example/uglyfont.pas
> + ; I don't abandon the copyright, but you can use this code and the header
> + ; (uglyfont.cpp and uglyfont.h) for your product regardless of the purpose,
> + ; i.e., free or commercial, open source or proprietary.
> + ;
> + ; However, I do not take any responsibility for the consequence of using
> + ; this code and header. Please use on your own risks.
> +
> + ; pascalscript-zlib-like:
> + ; components/PascalScript/*
> +
> + ; public-domain:
> + ; components/fpdebug/macho.pas
> + ; lcl/images/btncalculator.png
> + ; lcl/images/btncalendar.png
> + ; lcl/images/btnfiltercancel.png
> + ; lcl/images/btnseldir.png
> + ; lcl/images/btnselfile.png
> + ; lcl/images/btntime.png
> + ; lcl/images/buttons/*
> + ; lcl/images/dbnavigator/*
> + ; lcl/images/dialogs/*
> + ; lcl/images/dock/lcl_dock_to_bottom.png
> + ; lcl/images/dock/lcl_dock_to_left.png
> + ; lcl/images/dock/lcl_dock_to_page.png
> + ; lcl/images/dock/lcl_dock_to_right.png
> + ; lcl/images/dock/lcl_dock_to_top.png
> + ; lcl/images/sortasc.png
> + ; lcl/images/sortdesc.png
> + ; lcl/images/wince/wincedialog_cancel.png
> + ; lcl/images/cursors/*
> +
> + ; seems-common:
> + ; components/aggpas/src/*
> + ; components/aggpas/image_transforms.txt
> + ; Permission to copy, use, modify, sell and distribute this software
> + ; is granted provided this copyright notice appears in all copies.
> + ; This software is provided "as is" without express or implied
> + ; warranty, and with no claim as to its suitability for any purpose.
> +
> + ; unlicense: examples/database/sqlite_encryption_pragma/unit1.pas
That's an impressive listing, but I'd rather a worded summary instead,
which is less likely to bitrot/easier to maintain.
> + ;; All the above.
> + (license (list license:gpl2+ license:lgpl2.0+))))
Could you please send a v2 with the above taken into account? Thank
you!
--
Thanks,
Maxim
next prev parent reply other threads:[~2023-03-29 18:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-23 10:16 [bug#62424] [PATCH] gnu: Add lazarus dannym
2023-03-29 18:57 ` Maxim Cournoyer [this message]
2023-03-29 19:26 ` ( via Guix-patches via
2023-04-02 20:26 ` Danny Milosavljevic
2023-05-01 15:21 ` bug#62424: " Danny Milosavljevic
2023-05-01 17:35 ` [bug#62424] " ( via Guix-patches via
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87355n2xmz.fsf@gmail.com \
--to=maxim.cournoyer@gmail.com \
--cc=62424@debbugs.gnu.org \
--cc=dannym@scratchpost.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.