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==--