;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017 David Hashe ;;; Copyright © 2017 Kei Kebreau ;;; Copyright © 2020 Eric Bavier ;;; Copyright © 2021 Maxim Cournoyer ;;; Copyright © 2022 Ricardo Wurmus ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix 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 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix 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 GNU Guix. If not, see . (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) #:use-module (gnu packages) #:use-module (gnu packages base) #: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") (define %fpc-release-date "2021/05/19") ;;; FIXME: Bootstrap properly; these are prebuilt binaries. (define fpc-bootstrap-i386 (origin (method url-fetch) (uri (string-append "mirror://sourceforge/freepascal/Linux/" %fpc-version "/fpc-" %fpc-version ".i386-linux.tar")) (sha256 (base32 "0n4r85dsr86zlk7r4hbd4nj14sda6rwgdgzxg4gj4q981fn80agn")))) (define fpc-bootstrap-x86_64 (origin (method url-fetch) (uri (string-append "mirror://sourceforge/freepascal/Linux/" %fpc-version "/fpc-" %fpc-version ".x86_64-linux.tar")) (sha256 (base32 "10qywczzz4qlcmmzxb7axnvwniq76ky130vd8iv6ljskll4c7njs")))) (define-public fpc (package (name "fpc") (version %fpc-version) (source (origin (method url-fetch) (uri (string-append "mirror://sourceforge/freepascal/Source/" version "/fpcbuild-" version ".tar.gz")) (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 "07qna2pvlpa7j0i2wdixjxpizdvffv51nbr1waczk0xv8cq9kvw5")) (patches (search-patches "fpc-reproducibility.patch")) (modules '((guix build utils))) (snippet '(begin (rename-file "install/doc" "install-doc") (rename-file "install/man" "install-man") ;; Contains executables--some of them created by ;; closed-source compilers. (delete-file-recursively "install") (mkdir-p "install") (rename-file "install-doc" "install/doc") (rename-file "install-man" "install/man") (delete-file "fpcsrc/tests/utils/dosbox/exitcode.exe"))))) (build-system gnu-build-system) (supported-systems '("i686-linux" "x86_64-linux")) (inputs (list expat glibc ncurses zlib)) (native-inputs ;; FPC is built with FPC, so we need bootstrap binaries. `(("fpc-binary" ,(match (or (%current-target-system) (%current-system)) ("i686-linux" fpc-bootstrap-i386) ;;("powerpc64le-linux" fpc-bootstrap-ppc64le) ;;("powerpc-linux" fpc-bootstrap-ppc) ("x86_64-linux" fpc-bootstrap-x86_64) ;; XXX: Wrong, but innocuous so long ;; `supported-systems' is kept in sync. (_ fpc-bootstrap-x86_64))))) (arguments `(#:tests? #f ; no tests available #:phases (let ((fpc-bootstrap-path (string-append (getcwd) "/" ,name "-" ,version "/fpc-bin")) (arch ,(match (or (%current-target-system) (%current-system)) ("i686-linux" "i386") ("x86_64-linux" "x86_64") (_ "unknown")))) (modify-phases %standard-phases (add-after 'unpack 'unpack-bin (lambda* (#:key inputs #:allow-other-keys) (mkdir-p fpc-bootstrap-path) (with-directory-excursion fpc-bootstrap-path (invoke "tar" "xvf" (assoc-ref inputs "fpc-binary"))))) (add-after 'unpack-bin 'install-bin (lambda* (#:key inputs #:allow-other-keys) (with-directory-excursion (string-append fpc-bootstrap-path "/fpc-" ,version "." arch "-linux") (let ((binary-tarball (string-append "binary." arch "-linux.tar")) (compiler-tarball (string-append "base." arch "-linux.tar.gz")) (fpcmake-tarball (string-append "utils-fpcm." arch "-linux.tar.gz"))) ;; Only the base compiler and fpcmake are needed. (invoke "tar" "xvf" binary-tarball compiler-tarball fpcmake-tarball) (invoke "tar" "xvf" compiler-tarball "-C..") (invoke "tar" "xvf" fpcmake-tarball "-C.."))))) (add-after 'patch-source-shebangs 'patch-inline-shebangs (lambda _ (substitute* "fpcsrc/compiler/cscript.pas" (("#!/bin/sh") (string-append "#!" (which "sh")))))) (add-before 'build 'patch-release-date (lambda _ ; reproducibility (substitute* (list "fpcdocs/prog.tex" "fpcsrc/packages/amunits/examples/sortdemo.pas" "fpcsrc/packages/libogcfpc/src/ogc/libversion.inc" "fpcsrc/utils/fpcres/fpcjres.pas" "fpcsrc/utils/fpcres/fpcres.pas" "fpcsrc/utils/fpcm/fpcmmain.pp" "fpcsrc/utils/fpcreslipo/fpcreslipo.pp" "fpcsrc/compiler/version.pas") (("\\{\\$I(NCLUDE)? %DATE%\\}") (format #f "'~a'" ,%fpc-release-date))))) (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) (substitute* "fpcsrc/compiler/systems/t_linux.pas" ;; Point to the current glibc dynamic linker. (("/lib/ld-linux.so.2") (search-input-file inputs ,(glibc-dynamic-linker))) (("/lib64/ld-linux-x86-64.so.2") (search-input-file inputs ,(glibc-dynamic-linker))) ; TODO: /lib/ld-linux-armhf.so.3 ; TODO: /lib/ld-linux-aarch64.so.1 ; TODO: /lib64/ld64.so.2 ;; Add glibc to ld's search path. (("if \\(isdll\\) then") (string-append "Add('SEARCH_DIR(\"" (assoc-ref inputs "libc") "/lib" "\")');\n" "if (isdll) then"))) (substitute* "fpcsrc/compiler/options.pas" (("exepath\\+'../etc/'") (string-append "'" (assoc-ref outputs "out") "/etc'"))))) (replace 'build (lambda* (#:key inputs #:allow-other-keys) (let* ((fpc-bin (string-append fpc-bootstrap-path "/bin")) (fpc (string-append fpc-bin "/fpc")) (fpcmake (string-append fpc-bin "/fpcmake"))) ;; The fpc binary needs to run the ppc[arch] binary (which ;; does the actual compiling) in this directory. (setenv "PATH" (string-append (getenv "PATH") ":" fpc-bootstrap-path "/lib/fpc/" ,version)) (setenv "FPC" fpc) ;; Specify target operating system using "-T" option (invoke fpcmake (string-append "-T" arch "-linux")) (invoke "make" "build" "NOGDB=1")))) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) ;; This is the suffix of the ppc[arch] binary. (suffix (if (string= arch "x86_64") "x64" "386")) (ppc (string-append "ppc" suffix))) (invoke "make" "install" "NOGDB=1" (string-append "INSTALL_PREFIX=" out)) ;; Remove files that fail RUNPATH validation. ;; TODO: Fix it instead. (delete-file (string-append out "/lib/libpas2jslib.so")) ;; Add a symlink to the ppc[arch] binary so fpc works. (symlink (string-append out "/lib/fpc/" ,version "/" ppc) (string-append out "/bin/" ppc)) ;; Install the example configuration file. (mkdir (string-append out "/etc")) (invoke (string-append out "/lib/fpc/" ,version "/samplecfg") (string-append out "/lib/fpc/" ,version) (string-append out "/etc"))))) (add-after 'install 'wrap (lambda* (#:key inputs outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) (fpc (string-append out "/bin/fpc")) (ld (assoc-ref inputs "ld-wrapper")) (glibc (assoc-ref inputs "glibc"))) (wrap-program fpc `("PATH" ":" prefix (,(string-append ld "/bin"))) `("LIBRARY_PATH" ":" prefix (,(string-append glibc "/lib"))))))))))) ;; fpc invokes gcc, so make sure LIBRARY_PATH et.al are set. ;(native-search-paths (package-native-search-paths gcc)) (home-page "https://www.freepascal.org") (synopsis "The Free Pascal Compiler") (description "Free Pascal is a professional Object Pascal compiler. It supports the Turbo Pascal 7.0, Delphi, and Mac Pascal dialects. Free Pascal also supports many useful extensions to the Pascal programming language.") ;; The majority of the software included is licensed under the GPLv2 ;; or later. For more licensing details, see the appropriate files in ;; the install/doc directory of the source distribution. (license license:gpl2+))) (define-public p2c (package (name "p2c") (version "2.02") (source (origin (method url-fetch) (uri (string-append "http://users.fred.net/tds/lab/p2c/p2c-" version ".zip")) (sha256 (base32 "17q6s0vbz298pks80bxf4r6gm8kwbrml1q3vfs6g6yj75sqj58xs")))) (build-system gnu-build-system) (arguments (list #:make-flags #~(list (string-append "CC=" #$(cc-for-target)) (string-append "HOMEDIR=" #$output "/lib/p2c") (string-append "INCDIR=" #$output "/include/p2c") (string-append "BINDIR=" #$output "/bin") (string-append "LIBDIR=" #$output "/lib") (string-append "MANDIR=" #$output "/share/man/man1") "MANFILE=p2c.man.inst") #:test-target "test" #:phases #~(modify-phases %standard-phases (delete 'configure) (add-before 'build 'mkdir (lambda _ (mkdir-p (string-append #$output "/share/man")) (mkdir-p (string-append #$output "/lib")) (mkdir-p (string-append #$output "/bin")) (mkdir-p (string-append #$output "/include")))) (add-before 'build 'chdir (lambda _ (chdir "src")))))) (native-inputs (list perl unzip which)) (synopsis "p2c converts Pascal programs to C programs") (description "This package provides @command{p2c}, a program to convert Pascal source code to C source code, and @command{p2cc}, a compiler for 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 rlink-path (let* ((libdirs (map (lambda (x) (assoc-ref inputs x)) '("glib" "gdk-pixbuf" "gtk+" "libx11" "libx11" "pango" "cairo" "atk"))) (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 " (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)) (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 ;; All the above. (license (list license:gpl2+ license:lgpl2.0+))))