From mboxrd@z Thu Jan 1 00:00:00 1970 From: Adolf Belka <adolf.belka@ipfire.org> To: development@lists.ipfire.org Subject: Re: Getting everyone started with Pakfire Date: Sat, 02 Sep 2023 13:00:08 +0200 Message-ID: <130fd0db-27da-4035-9c48-587f0028ed25@ipfire.org> In-Reply-To: <FCCA5D17-C3F0-4DA1-A753-FBE5E7141D0B@ipfire.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============2414965871792123658==" List-Id: <development.lists.ipfire.org> --===============2414965871792123658== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On 02/09/2023 12:53, Michael Tremer wrote: > Hello Adolf, >=20 >> On 2 Sep 2023, at 11:49, Adolf Belka <adolf.belka(a)ipfire.org> wrote: >> >> Hi Michael, >> >> I went back to pakfire and looked through the config.log file from my buil= d. >> >> From that I noticed the following defines >> >> #define PAKFIRE_CONFIG_DIR "/etc/pakfire" >> #define PAKFIRE_CACHE_DIR "/var/cache/pakfire" >> #define PAKFIRE_PRIVATE_DIR "/var/lib/pakfire" >> #define PAKFIRE_SCRIPTS_DIR "/lib/pakfire" >> #define PAKFIRE_TMP_DIR "/var/tmp" >> >> After running sudo make install then /var/lib/pakfire and /var/cache/pakfi= re are not present on the system. >=20 > That should be correct. Pakfire should create those directories itself if i= t is running as root. >=20 > For unprivileged users, it will create a cache directory in the user=E2=80= =99s home, because we cannot write to /var/lib/=E2=80=A6, etc. >=20 >> I also read through the INSTALL file in the pakfire directory and it said = the following were required. >> >> Requirements: >> * Python 2.6 or greater (not Python 3.x) >> * python-argsparse (included in Python 2.7) >> * libcap >> * libsolv >> * xz >> * beecrypt (requires libgomp) >> * popt >> * libelf >> * elfutils >=20 > This is old and I will remove this as soon as possible :) >=20 >> I don't have beecrypt or libgomp installed and not available from Arch Lin= ux except from their AUR which requires me to build them. >> >> Also the mention of not Python 3.x as that is all that is available on Arc= h Linux. >> >> Are the above requirements correct or out of date and should be ignored? >=20 > Please ignore. If configure went through without complaining, you have ever= ything you need. >=20 > What I find very interesting are those SQL errors. When Pakfire starts, it = is creating an internal SQLite database to store package information and othe= r things=E2=80=A6 And it looks like the database is there, but the schema is = not being created. And even weirder is that Pakfire does not abort there=E2= =80=A6 >=20 > Which versions of libarchive and SQLite do you have? sqlite 3.43.0 libarchive 3.7.1 Adolf. >=20 > -Michael >=20 >> Regards, >> >> Adolf. >> >> On 02/09/2023 12:26, Adolf Belka wrote: >>> Hi Michael, >>> >>> On 02/09/2023 11:29, Michael Tremer wrote: >>>> Hello Adolf, >>>> >>>> Have you been running this as root? I am not sure how well this is all w= orking as an unprivileged user at the moment. I think there might be a little= bit of work ahead to make it work well. >>> Yes, I was using an unprivileged user. I always do that unless the instru= ctions say to use sudo or if the program comes back and says it must be run w= ith root privileges. Or if I know that it has to be run with sudo like make i= nstall. >>> >>> So tried it again with sudo and the error message was exactly the same. >>> >>> Tried >>> sudo pakfire-builder --debug build beep/beep.nm >>> >>> and the error message was exactly the same. >>> >>> Tried sudo -s to get a root prompt and then ran the pakfire-builder comma= nd and exactly the same error message. >>> >>> As the first part of the error message is >>> >>> Database Error: SQL logic error: >>> >>> I confirmed that I do have sqlite installed. >>> >>> There is also a line in the error >>> >>> Could not read next file: /var/lib/pakfire/local/ipfire/3: Cannot stat >>> >>> I checked and there is no pakfire directory under /var/lib/ >>> Is there supposed to be? Maybe something is not working right during the = pakfire build on my system. The build is working okay but maybe something tha= t is required for the execution is not being correctly setup. >>> >>> What files should the pakfire make install be creating? >>> >>> Regards, >>> Adolf >>> >>> >>>> >>>> Otherwise, you can add =E2=80=94-debug to the command line and it should= write more detailed output into the journal. >>>> >>>> Best, >>>> -Michael >>>> >>>>> On 1 Sep 2023, at 17:37, Adolf Belka <adolf.belka(a)ipfire.org> wrote: >>>>> >>>>> Hi Michael, >>>>> >>>>> On 01/09/2023 18:23, Michael Tremer wrote: >>>>>> Hello, >>>>>> Yes, I believe this is what it does on my system. So this is alright. >>>>>> Did you try the other commands? >>>>> Just tried them and got the following errors:- >>>>> >>>>> pakfire-builder build beep/beep.nm >>>>> Database Error: SQL logic error: no such table: settings in "SELECT val= FROM settings WHERE key =3D ?" >>>>> Database Error: SQL logic error: no such table: settings in "SELECT val= FROM settings WHERE key =3D ?" >>>>> Package Database: testing 100% | 1.6M 00:00 >>>>> Package Database: bootstrap 100% | 2.1M 00:00 >>>>> Could not read next file: /var/lib/pakfire/local/ipfire/3: Cannot stat >>>>> OSError: [Errno 25] Inappropriate ioctl for device >>>>> >>>>> The above exception was the direct cause of the following exception: >>>>> >>>>> Traceback (most recent call last): >>>>> File "/usr/bin/pakfire-builder", line 437, in <module> >>>>> c() >>>>> File "/usr/bin/pakfire-builder", line 212, in __call__ >>>>> ret =3D args.func(args) >>>>> ^^^^^^^^^^^^^^^ >>>>> File "/usr/bin/pakfire-builder", line 233, in _build >>>>> p =3D self.pakfire(ns) >>>>> ^^^^^^^^^^^^^^^^ >>>>> File "/usr/bin/pakfire-builder", line 194, in pakfire >>>>> p =3D pakfire.Pakfire(arch=3Dns.arch, conf=3Dc, logger=3Dlogger.lo= g) >>>>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ >>>>> SystemError: <class '_pakfire.Pakfire'> returned a result with an excep= tion set >>>>> >>>>> Regards, >>>>> Adolf. >>>>>> -Michael >>>>>>> On 1 Sep 2023, at 17:21, Adolf Belka <adolf.belka(a)ipfire.org> wrote: >>>>>>> >>>>>>> Hi Michael, >>>>>>> >>>>>>> On 01/09/2023 16:39, Michael Tremer wrote: >>>>>>>> Hello Adolf, >>>>>>>>> On 17 Aug 2023, at 12:20, Adolf Belka <adolf.belka(a)ipfire.org> wr= ote: >>>>>>>>> >>>>>>>>> Hi Michael, >>>>>>>>> >>>>>>>>> When I built pakfire I just installed the programs that were flagge= d up as missing during the configure section. >>>>>>>>> >>>>>>>>> I have now gone through the filenames you listed from debian and ev= entually found what the equivalent packages that contain those are called in = Arch Linux (most were easy but a few were convoluted to find). >>>>>>>>> >>>>>>>>> Everything was already installed on my laptop except for liblzma-de= v which is lzlib in Arch Linux. >>>>>>>>> >>>>>>>>> Just to check, I installed lzlib and re-did the make check and the = same problems occurred. >>>>>>>> The configure script will complain if something is missing as none o= f the dependencies are optional. >>>>>>>> Apologies for taking so long to reply, but I should finally have a f= ix for the test suite: >>>>>>>> https://git.ipfire.org/?p=3Dpakfire.git;a=3Dcommitdiff;h=3D9eef0cb60= 3bc51a5b34f042fced6e4d0bfa8d9d8 >>>>>>>> https://git.ipfire.org/?p=3Dpakfire.git;a=3Dcommitdiff;h=3Dc54bafa7e= 74dbcb5b07bafe8fadf2ca830fd93d7 >>>>>>>> Please just run =E2=80=9Cgit pull=E2=80=9D, then =E2=80=9Cmake=E2=80= =9D again and you should have a few tests pass. Not all of them are passing a= t the moment. >>>>>>> This time 20 passed out of 28 >>>>>>> >>>>>>> PASS: tests/libpakfire/main >>>>>>> PASS: tests/libpakfire/arch >>>>>>> PASS: tests/libpakfire/archive >>>>>>> FAIL: tests/libpakfire/build >>>>>>> FAIL: tests/libpakfire/cgroup >>>>>>> PASS: tests/libpakfire/compress >>>>>>> PASS: tests/libpakfire/config >>>>>>> PASS: tests/libpakfire/db >>>>>>> PASS: tests/libpakfire/dependencies >>>>>>> PASS: tests/libpakfire/digest >>>>>>> PASS: tests/libpakfire/downloader >>>>>>> PASS: tests/libpakfire/file >>>>>>> FAIL: tests/libpakfire/jail >>>>>>> PASS: tests/libpakfire/key >>>>>>> FAIL: tests/libpakfire/makefile >>>>>>> PASS: tests/libpakfire/package >>>>>>> PASS: tests/libpakfire/packager >>>>>>> PASS: tests/libpakfire/parser >>>>>>> PASS: tests/libpakfire/progressbar >>>>>>> PASS: tests/libpakfire/repo >>>>>>> PASS: tests/libpakfire/snapshot >>>>>>> PASS: tests/libpakfire/string >>>>>>> FAIL: tests/libpakfire/util >>>>>>> FAIL: tests/python/keys.py >>>>>>> FAIL: tests/python/jail.py >>>>>>> FAIL: tests/python/package.py >>>>>>> PASS: tests/python/progressbar.py >>>>>>> PASS: tests/python/test.py >>>>>>> >>>>>>>> If pakfire-builder =E2=80=94-help runs fine, you could check out the= IPFire 3.x repository and run this: >>>>>>>> git clone https://git.ipfire.org/pub/git/ipfire-3.x.git >>>>>>>> cd ipfire-3.x >>>>>>>> pakfire-builder build beep/beep.nm >>>>>>>> Please let me know how that is going. >>>>>>>> -Michael >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> >>>>>>>>> Adolf. >>>>>>>>> >>>>>>>>> >>>>>>>>> On 17/08/2023 12:18, Adolf Belka wrote: >>>>>>>>>> Hi Michael, >>>>>>>>>> >>>>>>>>>> I did a clean new install and took the log files from the tests/li= bpakfire and tests/python directories. >>>>>>>>>> >>>>>>>>>> The only one that passed this time was the test.py from the tests/= python directory. All others failed. >>>>>>>>>> >>>>>>>>>> I have archived them into an xz file that is attached. >>>>>>>>>> >>>>>>>>>> Regards, >>>>>>>>>> Adolf. >>>>>>>>>> >>>>>>>>>> On 17/08/2023 11:38, Michael Tremer wrote: >>>>>>>>>>> Hello Adolf, >>>>>>>>>>> >>>>>>>>>>> Thank you very much for the quick feedback. >>>>>>>>>>> >>>>>>>>>>> After running =E2=80=9Cmake check=E2=80=9D, could you email me th= e =E2=80=9C*.log=E2=80=9D files in the test/libpakfire directory? Let=E2=80= =99s see what is going wrong there. For me a few tests fail, but a few should= run just fine. >>>>>>>>>>> >>>>>>>>>>> Best, >>>>>>>>>>> -Michael >>>>>>>>>>> >>>>>>>>>>>> On 17 Aug 2023, at 10:36, Adolf Belka <adolf.belka(a)ipfire.org>= wrote: >>>>>>>>>>>> >>>>>>>>>>>> I am using Arch Linux. >>>>>>>>>>>> >>>>>>>>>>>> I already do some building of my bacula client package on my lap= top so it has the normal build tools installed. >>>>>>>>>>>> >>>>>>>>>>>> To get autogen.sh to run I had to install intltool >>>>>>>>>>>> >>>>>>>>>>>> To get configure to run I had to additionally install. >>>>>>>>>>>> >>>>>>>>>>>> asciidoc, python-py-cpuinfo, python-pykerberos, python-systemd, = python-tornado and libsolv >>>>>>>>>>>> >>>>>>>>>>>> After that configure ran without any problems, as did make. >>>>>>>>>>>> >>>>>>>>>>>> Although make check is in brackets I gave it a go but got 1 pass= and 26 fails. The only pass was for test.py >>>>>>>>>>>> I ran the make check a second time and then two passed - test.py= and progressbar.py >>>>>>>>>>>> Further running of make check didn't change anything. >>>>>>>>>>>> >>>>>>>>>>>> make install went fine and after that I can run pakfire-builder = --help and get the help screen. >>>>>>>>>>>> >>>>>>>>>>>> Regards, >>>>>>>>>>>> Adolf. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 16/08/2023 17:29, Michael Tremer wrote: >>>>>>>>>>>>> Hello everyone, >>>>>>>>>>>>> >>>>>>>>>>>>> For our meet-up that is starting soon, I would like everyone to= have a working installation of Pakfire - our new build system. >>>>>>>>>>>>> >>>>>>>>>>>>> I am not sure yet in what way we are going to use it, but gener= ally there will be an intro for everyone who hasn=E2=80=99t had one yet, and = maybe we even get a chance to update a few packages of the distribution or so= mething=E2=80=A6 >>>>>>>>>>>>> >>>>>>>>>>>>> Because I don=E2=80=99t know which distributions you are using,= and because we don=E2=80=99t have any packages for any major distribution ju= st yet, I would like to ask everyone to install Pakfire manually on their sys= tems in advance of our meet-up, so that we can start straight away. We should= also use the time to find any issues that might occur on other distributions= than Debian which is what I have been using. >>>>>>>>>>>>> >>>>>>>>>>>>> Please find the source here: https://git.ipfire.org/?p=3Dpakfir= e.git;a=3Dsummary >>>>>>>>>>>>> >>>>>>>>>>>>> On Debian, I have to install these packages as dependencies (ye= s it is quite a lot): >>>>>>>>>>>>> >>>>>>>>>>>>> * asciidoc, autoconf, automake, bison, build-essential, flex, i= ntltool, libarchive-dev, libcap-dev, libcurl4-openssl-dev, libelf-dev, libgpg= me-dev, libjson-c-dev, liblzma-dev, libmagic-dev, libmount-dev, libnl-3-dev, = libnl-route-3-dev, libpcre2-dev, libpython3-dev, libseccomp-dev, libsolv-dev,= libsqlite3-dev, libssl-dev, libsystemd-dev, libtool, libzstd-dev, pkg-config= , python3-cpuinfo, python3-kerberos, python3-tornado, python3-psutil, python3= -setproctitle, uuid-dev >>>>>>>>>>>>> >>>>>>>>>>>>> I have no idea what the package names will be for your distribu= tion, but I am sure you will all figure it out :) >>>>>>>>>>>>> >>>>>>>>>>>>> You can use the usual three-clause build process after generati= ng the configure script: >>>>>>>>>>>>> >>>>>>>>>>>>> ./autogen.sh >>>>>>>>>>>>> ./configure =E2=80=94-prefix=3D/usr =E2=80=94-sysconfdir= =3D/etc =E2=80=94-enable-debug >>>>>>>>>>>>> make >>>>>>>>>>>>> (make check) >>>>>>>>>>>>> make install >>>>>>>>>>>>> >>>>>>>>>>>>> After that, you should be able to run pakfire-builder =E2=80=94= -help. >>>>>>>>>>>>> >>>>>>>>>>>>> Please let me know if that works for you up to this point and p= lease file a bug if changes are required to make Pakfire work on your distrib= ution. >>>>>>>>>>>>> >>>>>>>>>>>>> All the best, >>>>>>>>>>>>> -Michael >>>>>>>>>>>> >>>>>>>>>>>> --=20 >>>>>>>>>>>> Sent from my laptop >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> --=20 >>>>>>>>> Sent from my laptop >>>>>>>>> >>>>>>> >>>>>>> --=20 >>>>>>> Sent from my laptop >>>>> >>>>> --=20 >>>>> Sent from my laptop >>>> >>>> >>> >> >> --=20 >> Sent from my laptop >> >=20 --=20 Sent from my laptop --===============2414965871792123658==--